[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Укажите на ошибку в if else
allforweb
Модуль «Добаление и редактирование новости». Есть два чекбокса, которые отвечают за активность новости и ее фиксации. Если чекбокс отмечен то показываем новость и фиксируем ее при выводе, если нет то не показываем и не фиксируем. В БД организовано все так:
active tinyint(1) записываем в поле 1 – новость показывается, если 0 – не показывается
fixed tinyint(1) записываем в поле 1 – новость фиксирована, если 0 – не фиксирована

Проблема вылазит при редактировании. Я хочу чтобы чекбокс был отмечен или не отмечен при редактировании новости. И сделал вот такой проверяющий код:

if( $myrow['active'] == 1) {$checked = "checked='checked'";} else {$checked ="";}
if( $myrow['fixed'] == 1) {$checked = "checked='checked'";} else {$checked ="";}

как вариант еще так писал:
if( $myrow['active'] == 1) $checked = "checked='checked'"; else $checked ="";
if( $myrow['fixed'] == 1) $checked = "checked='checked'"; else $checked ="";

echo $myrow['active']; //выводит 0
echo $myrow['fixed']; // выводит 1

А при редактировании новости этот код не срабатывает. Или все отмечено, или все не отмечено, а данные разные.




Спустя 55 минут, 25 секунд (2.12.2010 - 22:40) SlavaFr написал(а):
Цитата (allforweb @ 2.12.2010 - 18:45)
А при редактировании новости этот код не срабатывает. Или все отмечено, или все не отмечено, а данные разные.

ну именно так, как ты и зделал, т.е в обоих случаях будет все посажено по значению $myrow['fixed']

Спустя 4 минуты, 56 секунд (2.12.2010 - 22:45) collapse написал(а):
Переменная $checked у тебя одна на оба чекбокса.

А вообще пиши так

<input type="checkbox" <?=$myrow['fixed'] ? 'checked="checked"' : ''?> />


Когда $myrow['fixed'] будет одному - будет чекед, так как 1 это true.

Спустя 11 часов, 22 минуты, 26 секунд (3.12.2010 - 10:07) linker написал(а):
<input type="checkbox" <?php echo ($myrow['fixed'] ? 'checked' : ''); ?> />

Спустя 1 час, 55 минут, 14 секунд (3.12.2010 - 12:03) collapse написал(а):
linker, да да... именно так и работает smile.gif

Спустя 1 час, 4 минуты, 17 секунд (3.12.2010 - 13:07) sergeiss написал(а):
Цитата (allforweb @ 2.12.2010 - 22:45)
А при редактировании новости этот код не срабатывает. Или все отмечено, или все не отмечено, а данные разные.

Ты опиши логику того, что ты хочешь (словами). В настоящее время у тебя сначала проверяется 'active' и как-то выставляется checked. Потом про это забываешь, проверяешь 'fixed'.
Надо, наверное, оба условия писать вместе и потом (один раз!) выставлять значение checked.
//Типа такого (если оба одновременно должны быть):
if( $myrow['active'] == 1 and $myrow['fixed'] == 1)
//или такого (если достаточно выполнения одного из 2-х условий)
if( $myrow['active'] == 1 or $myrow['fixed'] == 1)

Быстрый ответ:

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