2013-05-11 4 views
0

검색 영역에 3 개의 입력란이 있고 입력란 하나는 입력란이고 다른 2 개의 입력란은 드롭 다운 메뉴입니다. 누군가 입력란에 무엇인가를 입력하거나 드롭 다운 (주 및 도시)의 두 가지 중에서 선택합니다.선택 메뉴의 쿼리에 대한 여러 옵션

입력 검색이 올바르게 작동합니다. 선택 메뉴는 그렇지 않습니다.

여기에 양식이 있습니다.

<?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()); 
    } ?> 

내가 모두 도시와 국가를 검색 쿼리를 필요로하고 내가 조건을 제대로 할 수없는 것 : 여기

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

는 쿼리입니다. 나는 이것이 많은 코드라는 것을 알고 있지만 누군가 도움이된다면 위대 할 수있을 것이다.

감사합니다,

클린트

답변

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

statecity이 ffl_list 테이블의 COLS의 이름이 될 수 있습니다, 당신은 mysql_Fetch_array에서 문자열을 반환 된 배열의 키를 사용해야합니다.

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

큰 감사 : 당신은 당신이 검색어에 대한 필터를 만들 때, 당신은 하드 문자열을 설정 $rrows2$rrows3

를 들어,하지 GETted 데이터를 잘못했는지! 도시 목록을 만드는 방법에 대한 아이디어는 선택된 주에서만 보여 집니까? –

+0

상태 선택 변경시 cities-list를 변경하려면 Javascript 및 AJAX를 사용하고 states-list의 onChange 이벤트에 함수를 추가해야합니다. 변경시 상태가 선택된 상태 인 ffl_list에서 cityies를 선택하라는 ajax 요청을합니다. 두 번째 선택 : 상태 목록이있는 첫 번째 페이지, 도시 목록이있는 두 번째 페이지 – Marcassin

+0

나는 아약스와 자바 스크립트의 아이디어를 좋아합니다. 당신이 저를 도와 주거나 올바른 방향으로 나를 가르쳐 주시겠습니까? –