单选按钮组初始化失败

时间:2016-07-26 17:03:36

标签: php html

代码段:考虑代码段(https://jsfiddle.net/Zikaynam/sgha2fkg):

<?php
    $gender = "";
?>

<label>Gender<span>*</span></label>

<div>
    <div id="gender" data-toggle="buttons radio">

        <label>
            <input type="radio" name="gender" value="M" checked=<?php ( $gender=="M" ) ? 'checked' : '' ?>/>&nbsp; Male &nbsp;
        </label>

        <label>
            <input type="radio" name="gender" value="F" checked=<?php ( $gender=="F" ) ? 'checked' : '' ?>/> Female
        </label>

        <label>
            <input type="radio" name="gender" value="L" checked=<?php ( $gender=="L" ) ? 'checked' : '' ?>/> LGBT
        </label>
    </div>
</div>

意图:代码段的目的是初始化一个全局变量,并使用所述全局变量来确定最初选择哪个单选按钮&#34;&#34;&#34;或者如果所有单选按钮最初都未选中&#34;。

失败:正如在给定链接中所示,我使用&#34;&#34;初始化了全局变量。打算最初将单选按钮设置为&#34;未选中&#34;但事实证明,其中一个单选按钮被检查了#34;我是网络开发的新手,所以我可能错过了一些东西或搞砸了一些东西,所以任何人都可以告诉我我的代码片段有什么问题,为什么它没有按照我的意图行事呢?谢谢你的建议。

2 个答案:

答案 0 :(得分:0)

在测试echo的值之后,您永远不会$gender,因此您网页的源代码将始终包含($gender的值无关):

<input type="radio" name="gender" value="M" checked=/>

<input type="radio" name="gender" value="F" checked=/>

<input type="radio" name="gender" value="L" checked=/>

您可以看到HTML代码无效:=字符不应该在那里,或者应该是checked="checked"
您的Web浏览器非常友好,并尽力显示包含错误的网页。在这种情况下,它可能会忽略=字符,并看到所有单选按钮都被选中。但由于组中只能检查一个单选按钮,因此会将其中一个显示为已选中。

建议:使用像PHP这样的服务器端语言生成网页时,如果你没有得到你期望的东西,你就不明白什么是错了,您应该检查浏览器中的源代码。通常有助于发现问题所在。

修正版:

<input type="radio" name="gender" value="M" <?php echo ( $gender=="M" ) ? 'checked' : '' ?>
<input type="radio" name="gender" value="F" <?php echo ( $gender=="F" ) ? 'checked' : '' ?>
<input type="radio" name="gender" value="L" <?php echo ( $gender=="L" ) ? 'checked' : '' ?>

有关整个代码,请参阅https://eval.in/613115

答案 1 :(得分:0)

我正在撤回我的问题...终于找到了问题..感谢你如此善良,甚至没有澄清问题是什么,以及如何解决问题......我至少你离开了我1点,这对于网络开发的新手来说真的是一个助推器......不管怎样,谢谢