繁体   English   中英

使用jQuery / Ajax过滤带下拉列表的PHP SELECT查询

[英]Use jQuery/Ajax to filter PHP SELECT query with dropdowns

我正在尝试使用jQuery / Ajax和PHP / MySQL创建过滤器。

我在HTML中有4个下拉列表选择,我想要实现以下功能:

当Ajax成功发布数据时,我的PHP文件将检查值是否为空,因此每个下拉列表都会在SELECT查询中添加“ AND”语句,例如:

SELECT * from properties WHERE property_id = '$property_id' AND dropdown_value = '$dropdown_value' AND dropdown_value2 = '$dropdown_value2'

因此,我可以设置所有变量,然后只检查发布的值是否为空,因此,如果为空,则根本不添加查询语句。

这可能吗?

谢谢。

编辑

当前代码:

$statements = array();
if (isset($_POST['segmento'])) {
   $segmento_query = $_POST['segmento'];
   $statements[] = " AND property_details.segmento = '$segmento_query' "; //condition for each property
}
if (isset($_POST['cidade'])) {
   $cidade_query = $_POST['cidade'];
   $statements[] = " AND property_details.cidade = '$cidade_query' ";
}

$filtraSegmento = "SELECT * FROM properties, property_complements, property_details WHERE property_complements.imovel_id = properties.property_id AND property_details.imovel_id = properties.property_id $statements";

你有没有尝试过:

$statements = array();
if (isset($POST['param1']) {
   $param1 = $POST['param1'];
   $statements[] = " property1 = '$param1' "; //condition for each property
}
if (isset($POST['param2']) {
   $param2 = $POST['param2'];
   $statements[] = " property2 = '$param2' ";
}

//.....more.....
$sql = "SELECT * FROM tbl WHERE ". implode('AND', $statements);
//do something here

编辑 :使用$statements作为字符串

$statements = '';
if (isset($_POST['segmento'])) {
   $segmento_query = $_POST['segmento'];
   $statements .= " AND property_details.segmento = '$segmento_query' "; //condition for each property
}
if (isset($_POST['cidade'])) {
   $cidade_query = $_POST['cidade'];
   $statements .= " AND property_details.cidade = '$cidade_query' ";
}

$filtraSegmento = "SELECT * FROM properties, property_complements, property_details WHERE property_complements.imovel_id = properties.property_id AND property_details.imovel_id = properties.property_id $statements";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM