[英]POST and process multiple check boxes PHP
我有一个带有多个复选框的表单,用户也可以添加多个复选框,因此金额可以有所不同。
复选框位于div中,我按如下方式收集每个复选框状态
[Javascript]
$('#list input:checked').each(function(){
checked = checked + "," + $(this).attr('id')
})
然后,我将此发布到清理它的php脚本中。
[PHP]
$checked = trim($checked, ',');
$checked = explode(",", checked);
然后更新数据库..
[SQL]
foreach ($checked as &$id)
{
sql stuff .......
}
这样可以达到要求的结果,但是我认为必须有更好的方法吗?
对于这一部分:
$('#list input:checked').each(function(){
checked = checked + "," + $(this).attr('id')
})
您可以执行诸如serialize()
函数之类的操作。
您应该将具有相同名称的所有相同类型的复选框放在最后,并用方括号括起来,例如: x[]
,并且它们将使用值而不是id:
<input type="checkbox" name="x[]" value="1">
<input type="checkbox" name="x[]" value="2">
...
当您提交此表单时,您将在如下数组中获得所有检查的值:
$_POST['x'] => array(1,2,3)
因此您不必进行任何字符串操作。 这是在php中提交多选值的正确方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.