0

我正在学习如何从本教程系列中开发 WordPress 插件,现在我正在学习本教程,但我发现了一件奇怪的事情:使用了两个 RadioButtones 来获取值“True”或“False”,它们可以使用一个 CheckBox

<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 等等)优势吗?

4

1 回答 1

0

实际上我发现了为什么使用两个具有相同名称和不同值“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
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
}
?>
于 2013-02-09T09:46:25.863 回答