-4

我有:

<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)

提前感谢帮助。

4

3 回答 3

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>
于 2013-08-06T16:38:24.470 回答
1

php代码后面有一个checked="checked"。在您的代码中,每个输入都将检查属性设置为已检查。

于 2013-08-06T16:39:10.430 回答
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>
于 2013-08-06T16:41:27.097 回答