2014-02-08 23 views
0

我正在使用jquery-ajax顯示多個下拉菜單。所有的事情都是正確的,但我有一個問題是,當沒有價值aginst選定的下拉菜單,然後孩子下拉必須隱藏自己..但在我的代碼顯示自己是空的。我想,孩子下拉列表隱藏..kindly幫我在這方面..只有當數據庫中的值來自下拉式顯示,否則隱藏

<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 

$("#parent_state").change(function() { 

$.get('loadsubcat.php?parent_state=' + $(this).val(), function(data) { 
$("#city").html(data); 


}); 
}); 

}); 
/script> 

<?php 
$con=mysql_connect('localhost' , '' , ''); 
if($con){ 
    mysql_select_db('test' , $con); 
    //echo "database selected"; 
} 
    ?> 
    <form method="post"> 
     <?php 
      $sql= "SELECT * FROM state"; 
      $rs= mysql_query($sql); 

      if(mysql_num_rows($rs) > 0){ 
       ?> 
       <select name="parent_state" id="parent_state"> 
       <option value""></option> 
       <?php 
       while($nrow=mysql_fetch_array($rs)){ 

     echo "<option value=".$nrow['state_id']. ">".$nrow['state_name']. "</option>";   

     } 
?> </select> 
      <?php 
     } 

     ?> 


    <select name="city" id="city"> 
    <option value=""></option> 
</select> 



</form> 

這是loadsubcat.php

$parent_state = $_GET['parent_state']; 

$query = mysql_query("SELECT * FROM city WHERE state_id = {$parent_state}"); 
if(mysql_num_rows($query)>0){ 
while($row = mysql_fetch_array($query)) { 
echo "<option value=".$row['city_id']. ">".$row['city_name']. "</option>"; 
} 
} 

回答

0

你不能移動另一個下拉列表(一個帶名稱=「城市」),在if條件內?因此,如果父母下拉式不存在,孩子也不會。

事情是這樣的 -

... 
if(mysql_num_rows($rs) > 0){ 
    ?> 
    <select name="parent_state" id="parent_state"> 
     <option value""></option> 
     <?php 
      while($nrow=mysql_fetch_array($rs)){ 

      echo "<option value=".$nrow['state_id']. ">".$nrow['state_name']. "</option>";   

      } 
     ?> 
    </select> 
     //I've added the child select here. 
    <select name="city" id="city"> 
     <option value=""></option> 
    </select> 
<?php 
} 
?> 
... 
+0

我已經嘗試此..但它不是爲我工作..如果u有任何其他的解決辦法,然後好心幫我.. – fahadrana

0

試着改變你的腳本這個

<script type="text/javascript"> 
$(document).ready(function() { 

    $("#parent_state").change(function() { 
     $("#city").load('loadsubcat.php?parent_state=' + $(this).val()); 
     }); 
}); 
</script> 

我已經同前。獲得$問題,以及,試圖通過數據的方式。如果你堅持使用$ .get,你應該把數據放在json格式中,並傳遞給函數作爲參數。看到documentation

但在這種情況下,我覺得.load是合適的答案

另一件事要注意的是,在您的參數有空格都將導致一個問題。處理這個的一個安全的方法是編碼參數,即..

$("#parent_state").change(function() { 
     params = encodeURI($(this).val()); 
     $("#city").load('loadsubcat.php?parent_state=' + params); 
     }); 
+0

它仍然不適用於我:( – fahadrana

+0

你將需要做一些調試,表明它不工作? – Bryan