2013-08-06 2 views
-4

у меня есть:PHP, если заявления - я чувствую себя идиотом

<input type="radio" id="flag" name="flag" value="0" <?php if($row['flag_active'] === 0){ echo 'checked="checked"';} ?>checked="checked" /><label for="flag">Inactive</label> 
<input type="radio" id="flag1" name="flag" value="1" <?php if($row['flag_active'] === 1){ echo 'checked="checked"';} ?>checked="checked" /><label for="flag1">Active</label> 

Но кнопка второй радио является один, который всегда выбран. Я повторил вне $row['flag_active'] и она равна 0.

Кроме того, я попытался:

if($row['flag_active'] === 0) 
if($row['flag_active'] == 0) 
if($row['flag_active'] = 0) 
if($row['flag_active'] !== 1) 
if($row['flag_active'] != 1) 

Цените помощь раньше времени.

+2

Оба 'проверили = все равно«проверено»' вне PHP – j08691

+1

Вы выводя 'проверил =«проверено»' в вашем если заявления, а а также сразу после каждого из них. Не имеет значения, истинно ли утверждение if, вы все равно выводите его. – andrewsi

+0

Ну, ваши радиовходы всегда проверяются, посмотрите на check = "checked" прямо после php-скрипта. – KarasQ

ответ

1

У вас есть checked="checked" вне вашего if в любом случае. Удалите эти:

<input type="radio" id="flag" name="flag" value="0" <?php if($row['flag_active'] === 0){ echo 'checked="checked"';} ?> /><label for="flag">Inactive</label> 
<input type="radio" id="flag1" name="flag" value="1" <?php if($row['flag_active'] === 1){ echo 'checked="checked"';} ?> /><label for="flag1">Active</label> 
+0

Ха-ха, вот почему я чувствую себя идиотом: D Оцените это. – Jacques

1

За php-кодом проверяется флажок «Проверено». В вашем коде каждый вход будет иметь проверенный атрибут, установленный как отмеченный.

0

С кодом есть две основные проблемы:

1). Вы установили checked='checked' вне предложения PHP, поэтому последний элемент всегда будет проверяться.

2). Это действительно плохо для удобочитаемости & ремонтопригодность. Вы можете написать это в гораздо более читаемой форме, используя триад:

<input type="radio" id="inactive_flag" name="inactive_flag" value="0" <?= ($row['flag_active'] == 0) ? "checked='checked'" : null; ?> /> 
<label for="inactive_flag">Inactive</label> 
<input type="radio" id="active_flag" name="active_flag" value="1" <?= ($row['flag_active'] == 1) ? "checked='checked'" : null; ?> /> 
<label for="active_flag">Active</label> 
+0

Оцените ввод на читаемость, но я думаю, что вы опубликовали хуже, потому что похоже, что метка относится к тому, что ниже. В этом случае у меня есть своя цель, чтобы избежать путаницы. – Jacques

+0

@Jack Может включать ярлыки выше. Как правило, в программировании мы работаем с максимальным объемом не более 90 символов, выше этого, разбиваем линию, чтобы сделать ее более читаемой. –

+0

Вообще-то, я прохожу по реальной читаемости в своем уме. Если у меня возникнут проблемы с чтением всего на одной строке, я расколою его, если не думаю, что это делает его более запутанным. – Jacques

Смежные вопросы