[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обычное условие, но работает некоректно
stimka
Приветствую! Вроде бы простое условие, но все равно почему то работает некоректно. В общем код.


<td><img src="userfiles/news/<?
if (!empty(
$page_data['otvetstv']))
{
echo
$status2;
}
else
{
echo
$status1;
}
if(isset(
$page_data['otvetstv']) && !empty($page_data['otvet']))
{
echo
$status3;
}
?>"
alt="" width="31" />


<?
///СТАТУСЫ

$status1 = "onebit_09.png";
$status2 = "onebit_07.png";
$status3 = "onebit_06.png";

?>


В общем должно работать так.

У меня есть поля, ответственный $page_data['otvetstv'] и ответ $page_data['otvet']

Должно работать так.


Заявка добавлена в базу и устанавливается картинка status1 , после того как в заявку добавлен ответственный человек, то status2. После чего, когда добавили ответ, ставиться status3.

elseif не подошел, так как если существует верное значение, остальное уже не работает. Пробовал с помощью Switch, тоже результатов не дало..

Сможете помочь?

забыл указать в чем ошибка.... первое условие работает нормально и в адресной передается нормальное значение http://localhost/userfiles/news/onebit_09.png

а второе условие передает такое : http://localhost/userfiles/news/onebit_07.pngonebit_06.png
две картинки подрят!
lomonosv
У Вас если непустой $page_data['otvetstv'] и не пустой $page_data['otvet']
вернет последовательно два значения
echo $status2;
echo $status3;

Нужно что-то наподобие:

<td><img src="userfiles/news/<?
if (!empty(
$page_data['otvetstv'])){
if(!empty(
$page_data['otvet'])){
echo
$status3;
}else{
echo
$status2;
}
}else{
echo
$status1;
}
?>"
alt="" width="31" />
SoMeOnE
Вынеси для начала php код за html. Разберись с ним, потом подставляй эту переменную в html
stimka
Спасибо, в понедельник попробую:)
Valick
<?php
$st='status1';
if(!empty($page_data['otvetstv'])) $st='status2';
if(!empty($page_data['otvet'])) $st='status3';
// а теперь немного уличной магии
echo $$st;
?>




_____________
Стимулятор ~yoomoney - 41001303250491
Shkiper
<td><img src="userfiles/news/"<?php
if (!empty($page_data['otvetstv'])){
if(!empty($page_data['otvet'])){
echo $status3;
}else{
echo $status2;
}
}
else{
echo $status1;
}
?>"" alt="" width="31" />
Shkiper
<td><img src="userfiles/news/"<?php
if (!empty($page_data['otvetstv'])){
if(!empty($page_data['otvet'])){
echo $status3;
}else{
echo $status2;
}
}
else{
echo $status1;
}
?>"" alt="" width="31" />



<td><img src="userfiles/news/<?
if (!empty(
$page_data['otvetstv'])){
if(!empty(
$page_data['otvet'])){
echo
$status3;
}else{
echo
$status2;
}
}else{
echo
$status1;
}
?>"
alt="" width="31" />

Где ты сходства видишь?
lomonosv
Если у stimka работало так как он написал, то значит у него включены short_open_tag. А какой смысл в Вашей редакции "<?php? По моему решения идентичны. Если не прав - обоснуйте пожалуйста.
Shkiper
если у него включены short_open_tag то он нуб. Они по дефолту оФФнуты. И включить он их мог только сам. И пускай их ОФФает и делает как я показал.
stimka
Спасибо ребят, все работает :)

Ещё такой маленький вопросик, в книге читал как использовать PHP совместно c HTML, вот только из головы это все вылетело... Сейчас приведу пример.



<? if ($_SESSION['status'] == '3')
{

echo <<<HTML
<a href="admin.php?view=users" class="menu-item"><img src="images/icons/users.png" alt='dock-icon'/></a>
HTML;
}
?>



Данным кодом я разграничиваю доступ к управлению пользователями в админке.. Так вот, как сделать так что бы к примеру в таком коде можно было использовать ещё и переменную?



if (isset($item['srochno']) && strlen($item['srochno'])>0) 
{

echo <<<HTML <td class="articles_topic">$item['srochno']</a></td>

HTML;
}

else

{
echo <<<HTML <td class="articles_topic2">$item['srochno']</a></td>

HTML;

}

?>



Мне просто необходимо сделать красным дату, если же чекбоксом отмечен статус "Срочно". Данный код он же не правильным и нужно как то экранировать?
stimka
Цитата (Shkiper @ 3.12.2012 - 13:55)
если у него включены short_open_tag то он нуб. Они по дефолту оФФнуты. И включить он их мог только сам. И пускай их ОФФает и делает как я показал.

На счет нуба да, если бы был профессионалом, стал бы я обращаться за помощью?smile.gif

А по поводу short_open_tag = On, данный параметр включен у меня по умолчанию, стоит AppServ. Если что и выключал, то только отображение ошибок.
lomonosv
Просто загоняй переменную в фигурные скобки:

echo <<<HTML <td class="articles_topic2">{$item['srochno']}</a></td>

HTML;

А если будет просто переменная а не массив - то вообще без каких-либо скобок.
stimka
Все равно почему то жалуеться на ошибку в синтаксисе.. именно на <<< HTML


><?
if (isset($item['srochno']) && strlen($item['srochno'])>0)
{
echo <<<HTML
<td class="articles_topic">{$item['datavvoda']}</a></td>

HTML;
}

else

{
echo <<<HTML <td class="articles_topic2">{$item['datavvoda']}</a></td>

HTML;

}


?>
lomonosv
После <<<HTML не должно быть вообще ничего даже пробелов (в той же строке)

echo <<<HTML

<td class="articles_topic2">{$item['datavvoda']}</a></td>

HTML;

Вот про этот тип строк в мануале php:
heredoc
stimka
Спасибо:)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.