2014-02-08 22 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