如何使用JQuery通过_POST将所有复选框的数组传递到下一页

时间:2011-09-08 10:36:13

标签: php jquery post checkbox

如何获取页面上选中的所有复选框的数组,然后将其传递到下一页(在本例中为php,因此可以通过php _POST函数获取)。我想出了这个:

<script type="text/javascript">
var selected = new Array();

$(document).ready(function() {

  $("input:checkbox:checked").each(function() {
       selected.push($(this).val());
  });
$('#od').submit(function() {
  alert(this.selected); // *See note below
  $.post('receiver.php', {'registration': selected});
  return false;
});

});

</script>

但是似乎不起作用:(它返回null,好像没有复选框被添加到数组中,或者post函数可能是错误的。你能指出我在正确的方向吗?

4 个答案:

答案 0 :(得分:2)

我发现了以下问题:

  1. 您在页面加载时读取了选中的项目,因此忽略了用户所做的所有更改。将该代码移至submit()处理程序。

  2. 您的调试代码(alert(this.selected))尝试显示表单节点的selected属性的值。它不是对您的JavaScript全局变量selected的引用。我建议你使用适当的调试工具,如Firebug;警报非常不合适。

  3. 您已成功发送已检查项目的。您只需忽略字段 name 并将所有内容重命名为registration。这看起来有意,否则报告回来:

    {'registration': selected}
    
  4. 我想您可以让jQuery为您序列化值,但是在代码中修复这些小细节应该可以解决问题。

答案 1 :(得分:0)

我认为$("input:checkbox:checked")应该是`$(“input [type =”checkbox“]:checked”)

答案 2 :(得分:0)

或简单地说:$('input:checked','#form-container');

答案 3 :(得分:0)

$('#od').submit(function() {
  var selected = $('input[type="checkbox"]:checked').toArray();
  $.post('receiver.php', {'registration': selected});
  return false;
});

发布的数据可能需要拆分.....