繁体   English   中英

POST并处理多个复选框PHP

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM