我正在使用ajax/jquery和php/mysql开发过滤器功能。我有两组复选框 1)=>对于区域 2)=>对于地区。过滤器类似于此处的过滤器。我想发送两个复选框的值来过滤记录。将根据选择区域复选框在本地筛选区域筛选器。我已经让它在某种程度上工作了这是在第一组复选框上调用的。
目录
<div class="locality">
<input type="checkbox" id="checkbox1" class="checkbox1" value="<?php echo $suburb['suburb_name']?>" name="Suburb_check[]" onClick="changeResults();" onChange="" ><?php echo $suburb['suburb_name']?> <span class="grey">(<?php echo $suburb['total']?>)</span>
</div>
<?php }?>
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';
}
});
}
这是第二套带有地点的夹头盒
<div class="locality" id="localities">
<input type="checkbox" onClick="changeLocality();" id="1" value="<?php echo $locality['locality_name'];?>" name="Locality_check[]"><?php echo $locality['locality_name'];?> <span class="grey">(<?php echo $locality['total'];?>)</span>
</div>
我调用了一个类似于上述函数的函数,并将其发布到不同的页面。这是第二个 chck 盒功能:
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";
}
});
}
但是,当我选择一个区域框,然后选择一个位置框然后取消选择该区域时,我还在区域数组中获取了之前的位置值(数组的名称是 venue)我只想在场地数组中进入区域,在位置数组中只选择区域+位置数组。实际上,如果我取消选择区域,则后续局部性值也应该从数组中删除。此外,即使我将它们发布到不同的页面,区域页面也包含位置值。我被困在JQUERY知识不多。
浏览了帖子,但无法修复。任何帮助将不胜感激。
编辑当我检查第一组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??或者可以用更简单的方式完成?
谢谢
您使用.
选择对象的内容,以便您的
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。经过一些阅读和搜索后学会了它!!问题已解决感谢那些回答的人。