簡體   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