2014-12-03 161 views
0

的index.php显示级联下拉列表

<div id="container"> 
    <div id="body"> 
    <div id="dropdowns"> 
     <div id="center" class="cascade"> 
      <?php 
     $sql = "SELECT searchname FROM search_parent"; 
     $query = mysqli_query($con, $sql); 
     ?> 
      <label>First Option: 
      <select name="searchname" id = "drop1"> 
       <option value="">Please Select</option> 
       <?php while ($rs = mysqli_fetch_array($query, MYSQLI_ASSOC)) { ?> 
       <option value="<?php echo $rs["id"]; ?>"><?php echo $rs["searchname"]; ?></option> 
       <?php } ?> 
      </select> 
      </label> 
      </div> 

     <div class="cascade" id="state"></div> 

      <div id="city" class="cascade"></div> 
     </div> 
    </div> 
    </div> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
$("select#drop1").change(function(){ 

    var country_id = $("select#drop1 option:selected").attr('value'); 
// alert(country_id); 
    $("#state").html(""); 
    $("#city").html(""); 
    if (country_id.length > 0) { 

    $.ajax({ 
      type: "POST", 
      url: "fetch_state.php", 
      data: "country_id="+country_id, 
      cache: false, 
      beforeSend: function() { 
       $('#state').html('<img src="loader.gif" alt="" width="24" height="24">'); 
      }, 
      success: function(html) {  
       $("#state").html(html); 
      } 
     }); 
    } 
}); 
}); 
</script> 

fetch_state.php

<?php 

include("connection.php"); 
$country_id = trim(mysqli_escape_string($con,$_POST["country_id"])); 

$sql = "SELECT * FROM t1 WHERE parent_id = '".$country_id ."' "; 
$count = mysqli_num_rows(mysqli_query($con, $sql)); 
if ($count > 0) { 
$query = mysqli_query($con, $sql); 
?> 
<label>Select: 
<select name="state" id="drop2"> 
    <option value="">Please Select</option> 
    <?php while ($rs = mysqli_fetch_array($query, MYSQLI_ASSOC)) { ?> 
    <option value="<?php echo $rs["id"]; ?>"><?php echo $rs["title"]; ?></option> 
    <?php } ?> 
</select> 
</label> 
<?php 
    } 

?> 

<script src="jquery-1.9.0.min.js"></script> 

表为search_parent

id searchname 
1  t1 
2  t2 
3  t3 

当用户选择T1第二下拉列表中的值应该从t1表中填充,如果选择了t2,它应该从t2表填充,并且如果t3被选择了第二个下拉列表应该从T3表获取填充

表T1

id title parent_id 
1 tt1  1 
然而

当我运行这段代码,它不工作,它只是展示了第一个下拉列表,当我选择一个值没有被显示进一步

+0

'error_log'?任何控制台错误? – mudasobwa 2014-12-03 08:29:33

+0

@mudasobwa我越来越错误mysqli_escape_string()期望正好2个参数, – Sam 2014-12-03 09:10:31

+0

也许它是有道理的传递正好两个参数调用'mysqli_escape_string()'然后呢? – mudasobwa 2014-12-03 09:11:15

回答

0

我认为你的问题是,你已经错过了id字段。

所以,在你的第一个查询,你说:

SELECT searchname FROM search_parent 

正如你所描述的,它可能是,t1t2t3。 但你并没有在查询中选择id领域,但你试过将其添加为一个选项值:

<option value="<?php echo $rs["id"]; ?>"><?php echo $rs["searchname"]; ?></option> 
         here^^^^^^^^^ 

所以没有什么会在值。

您需要查询更改为

SELECT id,searchname FROM search_parent