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

发布于 2024-12-18 14:52:15 字数 619 浏览 0 评论 0原文

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

I have four select boxes in a form. The user must select a value only from one select box and it doesn't matter which of the four ones. Given the fact that I can't use JS (would be easier) and that each select box has its own name, how can I check if only one of them is selected?

For example if only one is selected its ok. But if there's more than one selected I want to display an error.

I'm thinking about writing a couple of if() statements, but I'm actually looking for a more elegant solution.

I'm using PHP.

Here's a form sample:

<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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

£烟消云散 2024-12-25 14:52:15
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);
if(($_POST['hr_id']+$_POST['pr_id']+$_POST['dev_id']+$_POST['sales_id'])!=1) {
 $error=true;
}

EDIT: I suppose this isn't exactly flexible enough. You could also do something like:

$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);
御守 2024-12-25 14:52:15

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

<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

Why not use radio buttons which have this functionality by default?

<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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文