使用PHP循环通过AJAX发布的复选框数组

使用PHP循环通过AJAX发布的复选框数组,php,jquery,ajax,Php,Jquery,Ajax,我花了相当多的时间研究如何做到这一点。基本上,我有几个复选框,通过AJAX发送给PHP脚本,我希望PHP脚本响应每个选中复选框的值 以下是我的复选框的代码: while ($template = $stmt->fetch(PDO::FETCH_ASSOC)){ echo("<input class='checkbox templateSelectBox' name='RelatedTemplates[]' data-template='". $template['ID'] .

我花了相当多的时间研究如何做到这一点。基本上,我有几个复选框,通过AJAX发送给PHP脚本,我希望PHP脚本响应每个选中复选框的值

以下是我的复选框的代码:

while ($template = $stmt->fetch(PDO::FETCH_ASSOC)){
    echo("<input class='checkbox templateSelectBox' name='RelatedTemplates[]' data-template='". $template['ID'] ."' value='".$template['ID']."' type='checkbox'> <p class='label label-default'>". $template['Name'] ."</p><br>");
}

然后说,如果我选中第二个复选框,并使用
echo($\u POST['SelectedTemplates'])
对其进行回显,它将回显
相关模板%5B%5D=2
,我不完全理解其原因。我所期望的只是复选框的值,它只有一个位数。相反,我得到的是字符串。

我不清楚这个问题。请展示您尝试过的PHP代码,以便响应每个复选框的值,并让我们知道出现了什么问题。虽然PHP代码很少,但我刚刚编辑了这篇文章。我相信这就是jQuery的本质。它将一组表单元素编码为字符串。因此,从AJAX代码中发布的
SelectedTemplates
值是所有已发布复选框的字符串表示形式。这篇文章可能提供了信息:%5B是[而%5D是],所以它说:
RelatedTemplates[]=2
,因为所有复选框的名称都是相同的,这似乎是对的。我认为你这样做很好。您是否尝试过在中建议的
SelectedTemplates
变量上使用PHP?这将为您提供一个包含所有选中值的数组。这是一个例子。
$.ajax({
   type: 'POST',
   url: 'inc/ajax/addserver.ajax.php',
   data: {'SelectedTemplates': $(".templateSelectBox:checked").serialize()},
   success: function(data){
      $("#responses").html(data);
   }  })