【问题标题】:using radio buttones as check box使用单选按钮作为复选框
【发布时间】:2013-02-09 07:13:25
【问题描述】:

我正在学习如何从 this tutorial series 开发 WordPress 插件,现在我在 this tutorial 上,但我发现了一件奇怪的事情:使用了两个 RadioButtones 来获取它们可以使用的值“True”或“False”一个复选框

<label for="devloungeHeader_yes">
    <input type="radio" id="devloungeHeader_yes" name="devloungeHeader" value="true" <?php if ($devOptions['show_header'] == "true") { _e('checked="checked"', "DevloungePluginSeries"); }?> />
    Yes
</label>&nbsp;&nbsp;&nbsp;&nbsp;
<label for="devloungeHeader_no">
    <input type="radio" id="devloungeHeader_no" name="devloungeHeader" value="false" <?php if ($devOptions['show_header'] == "false") { _e('checked="checked"', "DevloungePluginSeries"); }?>/>
    No
</label>

我在 joomla 管理页面上看到了类似的东西,其中使用了 2 个单选按钮来获得相同的结果。

那么,使用两个单选按钮而不是一个复选框有什么(html、css、javascript、php 等等)优势吗?

【问题讨论】:

  • 对于 2 个值不。单选按钮几乎是对所有可用选项进行异或运算 - 对于两个复选框的作用相同;-)。但是单选按钮可以有一个初始值(无),复选框可以预设为真/假。也许这可能是一个原因
  • @Najzero 不,这不是原因,因为在该教程中,它需要结果为“True”或“False”,默认情况下结果为“True”,所以我认为有只是该教程的编码实践不佳。
  • 本教程已有 5 年历史,在很多方面都已经过时了。
  • 恕我直言,这完全是关于用户体验,而不是试图让您的标记/代码更简洁和/或高效。

标签: php javascript html css forms


【解决方案1】:

实际上我发现为什么使用两个具有相同名称和不同值“True”和“False”的单选按钮比复选框更好。当一个复选框没有被选中时,它不会被提交给服务器。但是,当您使用具有“True”和“False”值的单选按钮时,这些单选按钮将被提交到服务器上,因此 php 无论如何都会从 html 表单中获取结果。所以使用 ckeckbox 你只有两个选择:

1) when chebox is checked and is submited (value == "checked")
2) when checkbox is Not checked and it is not submited

使用 php 你有这两种选择:

<?php
if (isset($_POST['testCheckBox'])) {
    // it is submited so it means it is Checked!
} else {
    // it is not submited because it is not checked or there is something wrong!
}
?>

但是对于单选按钮,您有三个选项:

1) when radio "True" is checked and is submited
2) when radio "False" is checked and is submited
3) when radio is not SUBMITED, so something is not working properly

php 示例:

<?php
if (isset($_POST['testRadioButton'])) { // testRadioButton is submited!
    if($_POST['testRadioButton'] == "true"){
        // True is checked, do something
    } elseif(($_POST['testRadioButton'] == "false"){
        // False is checked, do something
    }
} else {
    // it not Submited! so there is definitely something wrong with code
}
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 2014-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多