如何验证多复选框状态?
我正在使用 绝对位置的验证我的表单的引擎。我想检查是否至少选择了组中的一个复选框。在示例中,它是通过设置相同的名称来完成的复选框组的
属性。 我无法使用相同的名称命名复选框,因为我使用以下代码将它们的状态保存在数据库中:
$values = array(
'checkbox1' => null,
'checkbox2' => null
);
foreach (array_intersect_key($_POST, $values) as $key => $value) {
$values[$key] = mysql_real_escape_string($value);
}
$query_add_candidate=sprintf("INSERT INTO dbase (checkbox1, checkbox2) VALUES ('$values[checkbox1]', '$dates[checkbox2]')"
现在 checkbox1
和 checkbox2
分别进行验证,因为它们具有不同的名称。如何检查所选内容是否至少是其中之一?
这是我的 HTML 代码:
<input class="validate[minCheckbox[1]] checkbox" type="checkbox" name="checkbox1" id="maxcheck1" value="1"/> Text1
<input class="validate[minCheckbox[1]] checkbox" type="checkbox" name="checkbox2" id="maxcheck2" value="2"/> Text2
I am using position absolute's validation engine for my form. I would like to check whether at least one checkbox from group is selected. In examples it is done by setting the same name
attribute for group of checkboxes.
I cannot name checkboxes with the same name, because I am saving their state in database with following code:
$values = array(
'checkbox1' => null,
'checkbox2' => null
);
foreach (array_intersect_key($_POST, $values) as $key => $value) {
$values[$key] = mysql_real_escape_string($value);
}
$query_add_candidate=sprintf("INSERT INTO dbase (checkbox1, checkbox2) VALUES ('$values[checkbox1]', '$dates[checkbox2]')"
Now checkbox1
and checkbox2
are validated individually, beacuse they have different names. How can I check if selected is at least one of them?
Here is my HTML code:
<input class="validate[minCheckbox[1]] checkbox" type="checkbox" name="checkbox1" id="maxcheck1" value="1"/> Text1
<input class="validate[minCheckbox[1]] checkbox" type="checkbox" name="checkbox2" id="maxcheck2" value="2"/> Text2
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在 php 上,
但你真正想要的是一个数组,
HTML、
php,
这样您就不必一一检查它们,特别是当您在同一页面上有大量它们时。
注意:您还应该知道,如果未选中复选框,它也不会在 php $_POST 超全局中设置,否则如果选中它,它将显示
value=". ..”
成立,on php ,
but what you really want is an array,
HTML,
php
so this way you don't have to check all of them one by one, especially if you have loads of them on the same page.
NOTICE: You should also know, if checkbox is not ticked it will also not be set on the php $_POST superglobal, otherwise if it is ticked, it will show whatever the
value="..."
holds,如果它已发布,则已检查,
因此,如果您将其放在
$_POST["checkbox_name"]
中,则已检查,否则不会发布。if its posted then its checked,
so if you have it in
$_POST["checkbox_name"]
then its checked, otherwise it wont be posted.您可以添加大量代码以一种糟糕的方式重新实现控制数组,也可以更改构建查询的代码,以便它可以接受控制数组。
我更喜欢后者。
You can either add loads of code to reimplement control arrays in a poor way, or you can alter the code that builds your query so it can accept control arrays.
I would prefer the latter.