如何检查是否选择了多个选择框

时间:2011-11-29 16:13:38

标签: php html forms

我在表单中有四个选择框。用户必须仅从一个选择框中选择一个值,并且四个选择框中的哪一个无关紧要。鉴于我不能使用JS(会更容易)并且每个选择框都有自己的名称,我如何检查是否只选择了其中一个?

例如,如果只选择一个,则确定。但如果选择了多个,我想显示错误。

我正在考虑编写几个if()语句,但我实际上正在寻找更优雅的解决方案。

我正在使用PHP。

以下是表格样本:

<select name="hr_id">
    <option value="1">...</option>
</select>

<select name="pr_id">
    <option value="1">...</option>
</select>

<select name="dev_id">
    <option value="1">...</option>
</select>

<select name="sales_id">
    <option value="1">...</option>
</select>

2 个答案:

答案 0 :(得分:3)

if(($_POST['hr_id']+$_POST['pr_id']+$_POST['dev_id']+$_POST['sales_id'])!=1) {
 $error=true;
}
编辑:我认为这不够灵活。你也可以这样做:

$fields = array('hr_id','pr_id','dev_id','sales_id');
$i=0;
foreach($fields as $k->$v) {
    $i = ($_POST[$v]!="" ? ++$i : $i );
}
$error = ($i == 1 ? false : true);

答案 1 :(得分:0)

为什么不使用默认具有此功能的单选按钮?

<input type="radio" name="preference" value="red" /> Red<br/>
<input type="radio" name="preference" value="blue" /> Blue<br/>
<input type="radio" name="preference" value="green" /> Green<br/>
<input type="radio" name="preference" value="yellow" /> Yellow<br/>

When submitted

$preference = $_GET['preference']; //cleaning omitted