序列化jQuery中的复选框

前端之家收集整理的这篇文章主要介绍了序列化jQuery中的复选框前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个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>
   }

JavaScript的

$.ajax({
          type: 'POST',url: '../createb.PHP',data: $('#b-form').serialize(),success: function (msg){
                alert(msg);
          }
})

目前,createb.PHP正在测试表单

$requests = $_POST['show_request'];
  $request_count = count($requests);
  echo 'count: '.$request_count;
  echo $requests[0];

问题是序列化函数只看到第一个复选框并指示它是否已被检查.它没有看到任何其他复选框.有没有人知道为什么其他复选框没有被序列化以及如何处理它?

谢谢
大卫

解决方法

嗯,这是真的,因为你有所有名称名称的复选框以及它们之间的分隔.

尝试创建它们像:

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

我确定$(‘#b-form’).serialize()现在可以根据需要生成所有复选框

猜你在找的jQuery相关文章