代码段:考虑代码段(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' : '' ?>/> Male
</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;我是网络开发的新手,所以我可能错过了一些东西或搞砸了一些东西,所以任何人都可以告诉我我的代码片段有什么问题,为什么它没有按照我的意图行事呢?谢谢你的建议。
答案 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点,这对于网络开发的新手来说真的是一个助推器......不管怎样,谢谢