Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
序列化jQuery中的复选框_Jquery_Checkbox - Fatal编程技术网

序列化jQuery中的复选框

序列化jQuery中的复选框,jquery,checkbox,Jquery,Checkbox,我有一个jQuery表单,其中创建了一系列复选框: <?php <form method="post" id="b-form" action="../createb.php"> for ($i=0; $i<$request_count; $i++){ <div class="request-check"> <table> <tr> <

我有一个jQuery表单,其中创建了一系列复选框:

<?php
<form method="post" id="b-form" action="../createb.php">
    for ($i=0; $i<$request_count; $i++){
       <div class="request-check">
          <table>
             <tr>
                <td><input type="checkbox" name="show_request[]" value="request".$i."      checked="checked"/>select request</td>
             </tr>
          </table>
        </div>
   }
目前createb.php正在测试表单

  $requests = $_POST['show_request'];
  $request_count = count($requests);
  echo 'count: '.$request_count;
  echo $requests[0];
问题是serialize函数只看到第一个复选框,并指示是否已选中该复选框。它看不到任何其他复选框。有人知道为什么其他复选框没有序列化,以及如何处理吗

谢谢
David

没错,因为所有复选框都有名称
名称
和任何
id
来分隔它们

试着像这样创建它们:

<input 
    type = "checkbox" 
    id = "ckb_<?php echo $i ?>"
    name = "ckb_<?php echo $i ?>_show_request[]" 
    value = "request".$i."
    checked = "checked"/> select request

您的选择器错误

尝试:

对于仅获取选中输入,请使用:

$('#b-form input:checkbox:checked').serialize()
引用自:仅将“成功控件”序列化为字符串(使用$(form).serialize()时)或数组($(form).serializeArray())。复选框和单选按钮(输入类型为“单选”或“复选框”)中的值仅在选中时才包括在内

您可以使用类似的方法来模拟与预期类似的行为:

var myCbValuesArray = $("input:checkbox").map(function(){
  return $(this).is(":checked");
}).get();

这对你有用

您可以通过以下方式获取选定的复选框值:

 $("input[type='checkbox']:checked").serialize();

您还可以将脚本生成的HTML代码粘贴到这里吗?你粘贴在这里的代码对我来说很奇怪?!
var myCbValuesArray = $("input:checkbox").map(function(){
  return $(this).is(":checked");
}).get();
 $("input[type='checkbox']:checked").serialize();