2013-05-11 59 views
0

我有一個搜索區域,其中包含3個字段,一個是輸入字段,另外兩個是下拉菜單。要麼有人在輸入字段中輸入內容,要麼從下拉列表中選擇(州和城市)。從選擇菜單查詢的多個選項

輸入搜索工作正常。選擇菜單不。

這裏是表格。

<form name="ffl_finder" method="get" action="index.php"> 
    Enter a Zip Code to find a Firearms Dealer near you: &nbsp;<br /> 
    <input name="q" type="text" id="q" size="40"> 

    Select a State AND a City<br /> 
    <select name="qoption2"> 
    <option value="" selected="selected">Select . . .</option> 

<?php 
$sql2 = "SELECT DISTINCT state from ffl_list order by state asc"; 
$rs_results2 = mysql_query($sql2) or die(mysql_error()); 

while ($rrows2 = mysql_fetch_array($rs_results2)) { 
?> 

    <option value="<?php echo $rrows2[state]; ?>"><?php echo $rrows2[state]; ?></option> 

<?php 
    } 
?>   
    </select> 

    <select name="qoption3"> 
    <option value="" selected="selected">Select . . .</option> 

<?php 

$sql3 = "SELECT DISTINCT city from ffl_list order by city asc"; 
$rs_results3 = mysql_query($sql3) or die(mysql_error()); 

while ($rrows3 = mysql_fetch_array($rs_results3)) { 
?> 
    <option value="<?php echo $rrows3[city]; ?>"><?php echo $rrows3[city]; ?></option> 

<?php 
    } 
?>   
    </select> 
    <input name="doSearch" type="submit" id="doSearch" value="Search">       
</form> 

下面是該查詢:

<?php if ($get['doSearch'] == 'Search') { 

    //$cond2 = ''; 
    if($get['qoption2'] != '') { 
    $cond2 = "`state` = 'qoption2'"; 
    } 
//$cond3 = ''; 
    if($get['qoption3'] != '') { 
    $cond3 = "`city` = 'qoption3'"; 
    }       

    if($get['q'] == '') { 
    $sql = "select * from ffl_list where $cond2 and $cond3 order by state asc, city asc"; 
    } 
    else { 
    $sql = "select * from ffl_list where `zip` = '$_REQUEST[q]' ORDER BY `id` asc";  
    } 
     $rs_results = mysql_query($sql) or die(mysql_error()); 
    } ?> 

我需要查詢搜索城市和狀態,我似乎無法得到正確的條件。我知道這是很多代碼,但如果有人可以幫助,這將是偉大的。

感謝,

克林特

回答

0
<?php 
     while ($rrows2 = mysql_fetch_array($rs_results2)) 
     { 
    ?> 
     <option value="<?php echo $rrows2['state']; ?>"><?php echo $rrows2['state']; ?></option> 
    <?php 
     } 
    ?> 

statecity可能的cols'的ffl_list表的名稱,你必須使用一個字符串返回數組的一個關鍵,從mysql_Fetch_array。你爲$rrows2$rrows3

做錯了當您創建過濾器的查詢,你設定一個硬字符串,而不是GETted數據:

$cond2 = ''; 
    if($_GET['qoption2'] != '') { 
    $cond2 = "`state` = '".$_GET['qoption2']."'"; 
    } 
+0

十分感謝!關於如何製作城市列表的任何想法都只能從選擇的狀態中顯示出來? – 2013-05-12 20:37:42

+0

如果您想要更改城市列表的狀態選擇更改,則必須使用Javascript和AJAX,並將狀態列表的onChange事件添加到狀態列表中。在更改中,您發出ajax請求,從'ffl_list'中選擇城市,其中狀態是所選的城市。 第二選擇:第一頁與狀態列表,第二頁與城市列表(由州選擇過濾) – Marcassin 2013-05-13 00:04:45

+0

我喜歡ajax和javascript的想法。你能幫我解決這個問題嗎?還是指出我的方向是正確的? – 2013-05-13 02:05:10