Как скрыть функцию if() в php

Статус
В этой теме нельзя размещать новые ответы.
Вполне ожидаемо, ведь так мы обнуляем содержимое переменной $target которая и содержит название чата которому соответствует сообщение. Обнулите переменную $message = ""; вместо $target и пропадает содержимое сообщения.
Сделал f($chat == "2") {$message= "";}
Сообщение пропало, но теперь отображается пустое поле td
 
Возможно решение будет найдено быстрее, если Вы постарайтесь описать не вдаваясь в код, в чем проблема, как оно сейчас работает и чего Вы хотите добиться. Из кода ясно, что Вы пытаетесь изменить функционал какого-то чата, который функционирует не так как бы хотелось. Опишите, что же с этим чатом не так и как оно должно работать.
 
Возможно решение будет найдено быстрее, если Вы постарайтесь описать не вдаваясь в код, в чем проблема, как оно сейчас работает и чего Вы хотите добиться. Из кода ясно, что Вы пытаетесь изменить функционал какого-то чата, который функционирует не так как бы хотелось. Опишите, что же с этим чатом не так и как оно должно работать.
Сейчас показывает пустые ячейки.
Хотелось бы полностью скрыть три чата, но не могу этого сделать. Я не знаю что можно придумать чтобы вообще не показывались чаты 1,2 и 3
 
Сейчас показывает пустые ячейки.
Хотелось бы полностью скрыть три чата, но не могу этого сделать. Я не знаю что можно придумать чтобы вообще не показывались чаты 1,2 и 3
Проблема в том, что никто кроме Вас не видит с чем идёт работа и это похоже на ситуацию в которой Вы спрашиваете хирурга "где мне отрезать чтоб не торчало ?", а хирург не представляет кого Вы оперируете: человек это, собака или рептилия, какую часть тела оперируем, не нарушит ли вмешательство естественную работу организма(может оно должно торчать и у него есть своё предназначение). Из последнего сообщения мы узнали, что три нижних ребра почему-то лишние :)
Нехваьает контекста и взаимосвязей! Вот если бы Вы объяснили примерно так: " Есть чат. Чат состоит из окна сообщений и окна выбора комнат. Мне нужно чтобы первые три комнаты были зарезервированы для общения администрации, поэтому при выводе списка комнат их необходимо скрыть от пользователей, но отображать для тех кто в группе особенных. Вот такой код у меня отвечает за вывод комнат, что в нем нужно изменить?" мы бы не тыкали пальцем в небо, а сразу ориентировались в каком направлении мыслить и как эффективней решить задачу именно в Вашей ситуации.
 
Проблема в том, что никто кроме Вас не видит с чем идёт работа и это похоже на ситуацию в которой Вы спрашиваете хирурга "где мне отрезать чтоб не торчало ?", а хирург не представляет кого Вы оперируете: человек это, собака или рептилия, какую часть тела оперируем, не нарушит ли вмешательство естественную работу организма(может оно должно торчать и у него есть своё предназначение). Из последнего сообщения мы узнали, что три нижних ребра почему-то лишние :)
Нехваьает контекста и взаимосвязей! Вот если бы Вы объяснили примерно так: " Есть чат. Чат состоит из окна сообщений и окна выбора комнат. Мне нужно чтобы первые три комнаты были зарезервированы для общения администрации, поэтому при выводе списка комнат их необходимо скрыть от пользователей, но отображать для тех кто в группе особенных. Вот такой код у меня отвечает за вывод комнат, что в нем нужно изменить?" мы бы не тыкали пальцем в небо, а сразу ориентировались в каком направлении мыслить и как эффективней решить задачу именно в Вашей ситуации.
У меня есть текстовый файл который генерирует чат. В этом файле указаны комнаты, мне нужно отфильтровать комнаты чтобы не видеть 1,2,3 и вывести остальные на сайт.
Код:
2016-08-04 10:49:07 lv3:RC1:Server=one, chat=1, src=2385, fid=217, msg1212312
2016-08-04 10:51:01 lv3:RC2:Server=one, chat=2, src=1313, fid=217, msg=r123123=
А так я вывожу на сайте (примерно) то что я хочу чтобы неавторизованные пользователи увидели
Код:
    <div id="obn">
        <?php include 'a.php'; ?>
    </div>


<script type="text/javascript">


function ajx(){
  var xmlhttp;
  if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
    }
  else
    {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

  xmlhttp.onreadystatechange=function()
    {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
      {
      obn.innerHTML=xmlhttp.responseText;
      }

    }

  xmlhttp.open("POST","a.php",true);
  xmlhttp.send()
}

document.getElementById('obn');
setInterval('ajx()',10);
</script>

Сейчас я сделал так:
if($chat == "чат1") {$target = ""; $sender= ""; $message= ""; $realm= ""; $time= "";}

Но так как у меня выводится всё в виде таблицы
Код:
echo'<tr>
    <td><h2>' .$realm.'</h2>'.$time.'</td>

    <td><h4>USER: '.$sender.' написал '.$target.'</h4>
     <h3>'.$message.'</h3></td>
</tr>';

получается что вместо сообщений появляются пустые ячейки, которые я пытаюсь скрыть
Код:
[время, канал] написал в чате-4 бла-бла-бла
[время, канал]
[время, канал]
[время, канал]
[время, канал] написал в чате-4 бла-бла-бла 2
В итоге получается у меня в маленьком окошке, появляются пустые ячейки и забивают сообщения с чатов которые я хочу чтобы увидели гости сайта.
 
Последнее редактирование:
  • Нравится
Реакции: Offi
Попробуйте вот так:
Код:
$showRoom=true;

if($chat == "чат1") { $showRoom=false; }
if($chat == "чат2") { $showRoom=false; }
if($chat == "чат3") { $showRoom=false; }


if($showRoom==true)
{
echo'<tr>
    <td><h2>' .$realm.'</h2>'.$time.'</td>

    <td><h4>USER: '.$sender.' написал '.$target.'</h4>
     <h3>'.$message.'</h3></td>
</tr>';
}
 
Попробуйте вот так:
Код:
$showRoom=true;

if($chat == "чат1") { $showRoom=false; }
if($chat == "чат2") { $showRoom=false; }
if($chat == "чат3") { $showRoom=false; }


if($showRoom==true)
{
echo'<tr>
    <td><h2>' .$realm.'</h2>'.$time.'</td>

    <td><h4>USER: '.$sender.' написал '.$target.'</h4>
     <h3>'.$message.'</h3></td>
</tr>';
}
не помогло
 
Может проверяемые значения переменной $chat в моём примере нужно адаптировать под значения которые там реально передаются?
Код:
if($chat == "1") ...
if($chat == "2") ...
if($chat == "3") ...
 
Попробуйте так (если я правильно понял что требуется)


$showchat=true;

//Тип сообщения
if($chat == "1") {$target = "чат1"; $showchat=false;}
if($chat == "2") {$target = "чат2"; $showchat=false;}
if($chat == "3") {$target = "чат3"; $showchat=false;}
if($chat == "4") {$target = "чат4"; $showchat=true;}
if($chat == "5") {$target = "чат5"; $showchat=true;}
if($chat == "6") {$target = "чат6"; $showchat=true;}


//Вызов таблицы

if($showchat==true)
{
echo'<tr>
<td style="background:#912C2C; color:#fff;"><h2>' .$realm.'</h2>'.$time.'</td>
<td><h4>User: '.$sender.' написал '.$target.'</h4>
<h3>'.$message.'</h3></td>
</tr>';
}
 
Может проверяемые значения переменной $chat в моём примере нужно адаптировать под значения которые там реально передаются?
Код:
if($chat == "1") ...
if($chat == "2") ...
if($chat == "3") ...

Всё задействованы функции
Код:
for ($i=0; $i<100; $i++) {
$readLine = $f[$i];

//Функции отбора текста
$split = explode(" ", $readLine);
$date = $split[0];
$time = $split[1];
$chat = $split[3];
$sender = $split[4];
$target = $split[5];
$message = $split[6];
$split = explode("=", $chat);
$chat = $split[1];
$split = explode("=", $sender);
$sender = $split[1];
$split = explode("=", $target);
$target = $split[1];
$split = explode("=", $message);
$message = base64_decode($split[1]);
$split = explode(":", $readLine);
$realm = $split[3];
$chat = substr_replace($chat ,"",-1);
$sender = substr_replace($sender ,"",-1);
$target = substr_replace($target ,"",-1);

Пробивал
Код:
$showRoom=true;
if($chat == "1") { $showRoom=false; $target = "Чат-1";}
и
Код:
$chat=true;
if($chat == "1") { $chat=false; $target = "Чат-1";}

Не помогло
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху