我正在为一个网站开发一个基于复选框的过滤操作。这里有多个复选框,用于过滤不同参数的记录列表。类似于完成的内容here。现在我已经成功取得了一些成功,我已根据第一组复选框过滤了记录。这是js函数。
HTML:
<input type="checkbox" id="checkbox1" class="checkbox1" value="<?php echo $suburb['suburb_name']?>" name="Suburb_check[]" onClick="changeResults();" onChange="" >
使用Javascript:
function changeResults(){
var data = { 'venue[]' : []};
$("input[name=Suburb_check[]]:checked").each(function() { var chck1 = $(this).val();
data['venue[]'].push($(this).val());
dataString =data['venue[]'.toString()].toString();
});
$.ajax({
type : 'POST',
url : 'process.php',
data : "dataString="+dataString,
success : function(data){
$('#project_section').html(data);
}
});
}
这样做过滤记录+加载第二组复选框 .1st set复选框)=&gt; 用于区域,第二个是=&gt; < strong> for Localities 我创建了一个数组来传递复选框值,然后将其转换为字符串( .toString )并传递给.php文件。
同样,我为第二组复选框创建了一个函数。 的 HTML
<input type="checkbox" onClick="changeLocality();" id="localityCheck" value="<?php echo $locality['locality_name'];?>" name="Locality_check[]">
JS
function changeLocality(){
var dataLocality = {'locality[]' : []};
$("input[name=Locality_check[]]:checked").each(function() {
var chcklocal = $(this).val();
dataLocality['locality[]'].push($(this).val());
localityString =dataLocality['locality[]'.toString()].toString();
});
$.ajax({
type : 'POST',
url : 'processLocality.php',
data : "localityString="+localityString,
success : function(dataLocality){
$('#project_section').html(dataLocality); // replace the contents coming from php file
}
});
}
将值传递给php文件但是当我尝试使用 $ _ POST 来获取它们时,我将相互混合的字符串,即区域值转换为locality字符串,反之亦然(< strong>尝试使用具有相同结果的数组,因此切换到字符串)。 我无法解决这个问题。为什么会发生这种情况 这是我发布值的php文件。 processLocality.php
<?php session_start();
include_once("includes/classes/db_connect.php");
include_once("pagination/paginator.class.php");
$pages = new Paginator();
$regions = "'".$_POST['dataString']."'";
echo $regions;
$arr = explode(",",$regions);
$getFormatedSuburb = implode("','",$arr);
$locality = "'".$_POST['localityString']."'";
echo $locality;
$arrLocal = explode(",",$locality);
$getFormatedLocality = implode("','",$arrLocal);
//Here I get the strings mixed with each other!!
?>
我在字符串中添加了一些表达式,用于以所需格式将其传递给SQL查询的IN子句。 现在我得到的字符串包含来自地区和地区的值。我想要两个分开,因为它们是两个不同的参数用于过滤记录
Pune East,
Pune West, //1 and 2 are regions
Aundh,
Kalyaninagar //3 and 4 are localities
另外,我想知道我的方法是否正确。有没有更好的方法来实现这一目标? 任何帮助表示赞赏 感谢
答案 0 :(得分:2)
尝试更改选择器。而不是:
$("input[name=Suburb_check[]]:checked")
....
$("input[name=Locality_check[]]:checked")
这样做:
$("input[name=Suburb_check]:checked")
....
$("input[name=Locality_check]:checked")
此外,标记必须采用以下形式:
<input type="checkbox" name="Suburb_check">
每个复选框组的名称相同。名称不能包含“[]”