使用ajax post请求发送两个数组

我正在使用ajax / jquery和php / mysql处理filterfunction。我有两组复选框1)=>对于区域2)=>对于Localities 。filter类似于这里的filter。 我想发送两个复选框的值来过滤记录。地区的filter将在选择区域复选框时进行本地过滤。我已经让它在某种程度上工作了这是在第一组调用复选框。

HTML

<input type="checkbox" id="checkbox1" class="checkbox1" value="" name="Suburb_check[]" onClick="changeResults();" onChange="" > ()

使用Javascript / jQuery的

 function changeResults(){ var data = { 'venue[]' : []}; $("input:checked").each(function() { var chck1 = $(this).val(); //alert(chck1); data['venue[]'].push($(this).val()); }); $.ajax({ type : 'POST', url : 'process.php', data : data, success : function(data){ $('#project_section').html(data); // replace the contents coming from php file } }); $.ajax({ type : 'POST', url : 'loadLocality.php', data : data, success : function(data){ document.getElementById("searchLoader").style.display = 'block'; $('#localityList').html(data); // replace the contents coming from php file // alert(data); document.getElementById("searchLoader").style.display = 'none'; } }); } 

这是具有Localities的第二组chck框

 
<input type="checkbox" onClick="changeLocality();" id="1" value="" name="Locality_check[]"> ()

我调用了一个与上面类似的函数,并将其发布到不同的页面。 这是第二个chck框function:

 function changeLocality(){ var dataLocality = {'locality[]' : []}; $("input:checked").each(function() { var chcklocal = $(this).val(); //alert(chcklocal); dataLocality['locality[]'].push($(this).val()); }); $.ajax({ type : 'POST', url : 'processLocality.php', data : dataLocality, success : function(dataLocality){ // document.getElementById("newloader").style.display ="block"; $('#project_section').html(dataLocality); // replace the contents coming from php file //alert('data'); // document.getElementById("newloader").style.display ="none"; } }); } 

但是,当我选择一个区域框然后选择一个位置框然后取消选择该区域时,我还得到区域数组中的先前位置值(数组的名称是场地 )我只希望区域进入场地arrays和区域+位置数组中的局部性 。实际上,如果我取消选择区域,也应该从数组中删除后续的位置值。尽管如此,尽管我将它们发布到不同的页面,但是区域页面保存了位置值。我被困住了JQUERY知识。
通过post,但无法解决它。任何帮助将不胜感激。

编辑我检查第一组chck框时得到一个数组,并使用上述函数过滤记录。

 Array ( [venue] => Array ( [0] => Pune East [1] => Pune West [2] => Pune North [3] => Pune South ) 

如果我现在点击任何第二组chck框,我会得到一个这样的数组。

  Array ( [locality] => Array ( [0] => Pune East [1] => Pune West //[0] and [1] are regions [2] => Aundh [3] => Kalyaninagar //[2] and [3] are localities ) 

注意:一个区域可以有多个局部。但是我希望它们都是不同的数组,因为它们是用于过滤数据的SQL查询的两个不同参数。 希望我现在足够清楚了!
我的方法是RiGHT ??还是可以用更简单的方式完成?
谢谢

使用a选择对象的内容. 所以你的

 data['venue[]'].push($(this).val()); 

应该:

 data.venue[].push($(this).val()); 

尝试改变

  $("input:checked").each(function() { 

 $("checkbox[name=check_box_name]:checked").each(function() { 

为两者改变这一点,我希望这会奏效

那么现在我认为这是一个愚蠢的错误!! :P问题出在复选框的名称上。 在Javascript中,我们不能在复选框的名称中使用venue[]括号[]。我认为它类似于PHP来发布数组。 经过一番阅读和搜索后了解到!!!问题得到解决感谢那些回答。