下面是我的代码片段:
echo "<tr>
<td>Fruits</td>
<td>
<input type='radio' name='fruit' value='Apple' ($fruit=='Apple')?'checked':''> Apple
<input type='radio' name='chamber' value='Banana' ($fruit=='Banana')?'checked':''> Banana</td>
</tr>";
$fruit
的值为Apple
,但单选按钮属性仍未设置为checked
。
如果您检查此输出,您可以看到该语句不会像您希望的那样执行,因为它在" "
内部。您需要在检查之前打破"
,并在检查之后继续,如下所示:
echo "<tr>
<td>Fruits</td>
<td>
<input type='radio' name='fruit' value='Apple' " . (($fruit=='Apple')?'checked="checked"':'') . "> Apple
<input type='radio' name='chamber' value='Banana' " .(($fruit=='Banana')?'checked="checked"':'') . "> Banana</td>
</tr>";
最好在括号(...)
中包含所有内容,以免混淆其他内容。
当你想把某些东西标记为选中时,最好使用checked="checked"
。
发现问题最简单的方法:
if($fruit=='Apple') $check="checked"; else $check="";
if($fruit=='Banana') $check="checked"; else $check="";
echo "<tr>
<td>Fruits</td>
<td>
<input type='radio' name='fruit' value='Apple' " .$check. "> Apple
<input type='radio' name='chamber' value='Banana' " .$check. "> Banana</td>
</tr>";
在您的示例中,您可以在($fruit=='Apple')
中添加?'checked':''
,或者为所有ternary
添加一个括号。
示例(最好在需要的地方使用<?php ?>
):
<tr>
<td>Fruits</td>
<td>
<input type='radio' name='fruit' value='Apple' <?=($fruit=='Apple' ? 'checked' : '')?>> Apple
<input type='radio' name='fruit' value='Banana' <?=($fruit=='Banana' ? 'checked' : '')?>> Banana</td>
</tr>