2014-12-05 75 views
0
中進行高級搜索

我無法使用此複選框進行搜索。當我運行代碼(檢查)時,沒有任何反應。我必須檢查它進行預先搜索,它會從數據庫中選擇數據。使用複選框在php

我HTMLcode:

<td><input type="checkbox" name="fac1" value="checked"/>AIRCOND</td> 
<td><input type="checkbox" name="fac2" value="checked"/>FAN</td> 

我的PHP代碼:

$fac1=isset($_POST["fac1"]); 
$fac2=isset($_POST["fac2"]); 

$qry = "SELECT * FROM homestay WHERE "; 
if(isset($_POST['fac1']) && $_POST['fac1'] == 'checked') 
{ 
     $fac1 = true; 
} 
if(isset($_POST['fac2']) && $_POST['fac2'] == 'checked') 
{ 
     $fac2 = true; 
} 

回答

0
$string = isset($_POST['fac1']) ? $_POST['fac1'] : (isset($_POST['fac2']) ? $_POST['fac2'] : ''); 

OR

if(isset($_POST['fac1']) && $_POST['fac1'] == 'checked') 
{ 
    $string = $fac1; 
} 
if(isset($_POST['fac1']) && $_POST['fac2'] == 'checked') 
{ 
    $string = $fac2; 
} 

通過您的字符串變量在query

$qry = "SELECT * FROM homestay WHERE $string = 'true'"; 
+0

我試過了。沒有一種錯誤。但是當點擊複選框時,它會說不在數據庫中。在這種形式下,我也用於通過文本框和下拉列表進行搜索。對於它可以使用的兩種選擇。但對於複選框,它似乎無法找到。 – 2014-12-06 13:42:17

+0

感謝Ronak Patel的幫助。它已經完成了。我現在明白了:) – 2014-12-06 14:22:51

0

像Ronak建議的那樣做會導致代碼太長,以至於不能找到多個搜索選項。不要指望你必須保存每次檢查選項時檢查一個選項下次加載頁面。 你可以用ajax來簡化它,例如它會在div中顯示結果。

先製作一個表格:

<form id="searchOptions"> 
<td><input type="checkbox" name="fac1" value="checked"/>AIRCOND</td> 
    <td><input type="checkbox" name="fac2" value="checked"/>FAN</td> 
</form> 

然後把腳本標題:

<script> 
function submitSearchForm() { 
    $.ajax({type:'POST', url: 'search.php', data:$('#searchOptions').serialize();?>, success: function(response) { 
      $('#resultDisplay').innerHTML = response; 
      }}); 
    return false; 
} 
</script> 

注意:

您還需要jquery.min在頭

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
+0

感謝Caddaile的幫助。它已經完成了。我現在明白了:) – 2014-12-06 14:22:36