我正在尝试创建一个清单,作为我的数据库的过滤器。核对表将用于输入多个值进行搜索。例如,用户应该能够同时搜索AC和Abarth品牌。
这就是品牌清单的样子。
<h3>Brand</h3>
<?php
$query = "select distinct(Brand) from Sheet1 order by Brand ASC";
$rs = mysqli_query($conn,$query) or die("Error : ".mysql_error());
while($brand_data = mysqli_fetch_assoc($rs)){
?>
<a href="javascript:void(0);" class="list-group-item">
<input type="checkbox" class="item_filter brand" value="<?php echo $brand_data['Brand']; ?>" >
<?php echo $brand_data['Brand']; ?></a>
<?php } ?>
我的ajax代码。
var brand;
$(function(){
$('.item_filter').click(function(){
$('.product-data').html('<div id="loaderpro" style="" ></div>');
brand = multiple_values('brand');
$.ajax({
url:"ajax.php",
type:'post',
data:{brand:brand},
success:function(result){
$('.product-data').html(result);
}
});
});
});
function multiple_values(inputclass){
var val = new Array();
$("."+inputclass+":checked").each(function() {
val.push($(this).val());
});
return val;
}
这就是我的php处理复选框的方式。
$brand = isset($_REQUEST['Brand'])?$_REQUEST['Brand']:"";
$query = "select * from Sheet1 where";
//filter query start
if(!empty($brand)){
$branddata =implode("','",$brand);
$query .= " Brand in('$branddata')";
}
$rs = mysqli_query($conn,$query) or die("Error : ".mysqli_error($conn))
结果应该是来自Sheet1的$ query = select *,其中Brand('AC','Abarth')。这是我的数据库显示所有车型AC或Abarth。 我得到的当前结果是它不会给出核对表中检查的值。所以最终的结果是什么,可能是因为我的ajax代码,因为$ brand没有得到任何价值。该值应该是一个稍后转换为单个字符串的数组。
答案 0 :(得分:0)
弄清楚我自己的问题。 php错了。 php正在寻找变量Brand的值,同时ajax正在向变量品牌发送值。
通过更改
修复$brand = isset($_REQUEST['Brand'])?$_REQUEST['Brand']:"";
到
$brand = isset($_REQUEST['brand'])?$_REQUEST['brand']:"";