我在表单中有四个选择框。用户必须仅从一个选择框中选择一个值,并且四个选择框中的哪一个无关紧要。鉴于我不能使用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>
答案 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