为什么Checked属性不适用于使用PHP的单选按钮?

时间:2016-10-07 11:23:09

标签: php

这是我的代码段:

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

3 个答案:

答案 0 :(得分:3)

如果检查输出结果,您可以看到该语句不会按照您的意愿执行,因为它位于" "内。您需要先打破"并在检查后继续这样做:

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"

答案 1 :(得分:0)

在您的示例中,您可以在?'checked':''中添加($fruit=='Apple'),或为所有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>

答案 2 :(得分:0)

如果发现任何问题,最简单的是:

&#13;
&#13;
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>";
&#13;
&#13;
&#13;