2017-09-06 79 views
1

根据我在网上找到的说明,我创建了一个非常基本的动态下拉列表(级联下拉列表),该列表查看数据库值,以及第二个字段(城市)根据第一个字段(国家)。以下是我正在使用的代码。我可以在第一个下拉列表中填入数据库数据,但是当我在国家/地区字段中进行选择时,城市字段中没有填充内容。我认为它有一些与我的jquery(.js)文件保存到的位置有关。我将它保存在我的索引文件夹(localhost/cascadingdropdown /)中,但是在CascadingDropDown脚本中它被引用为src =“// code.jquery.com/jquery-1.12.0.js”>。提前致谢!动态下拉列表PHP AJAX

CascadingDropDown PHP脚本:

<?php 

include('connect2-mysql.php'); 

?> 

<!DOCTYPE HTML> 
<html> 
<head> 
    <title>Cascading Dropdown</title> 
<style> 
.error {color: #FF0000;} 
type="text/css"> 
    .country, .city{ 
     margin: 20px 
    text-align: center;} 
</style> 
</head> 
<body> 

<div class="country"> 
<label>Country</label> 
    <select name="country" onchange="getId(this.value);"> 
     <option value="">Select Country</option> 
     //populate value using php 
     <?php 
     $query = "SELECT * FROM country"; 
     $results = mysqli_query($dbcon, $query); 
     //loop 
     foreach ($results as $country) { 

     ?> 
     <option value="<?php echo $country["id"]; ?>"><?php echo $country["countryname"]; ?></option> 
     <?php 
     } 


     ?> 
    </select> 
</div> 
<br></br> 
<div class="city"> 
<label>City</label> 
    <select name="city" id="cityList"> 
     <option value=""></option> 

    </select> 
</div> 
<script> src="//code.jquery.com/jquery-1.12.0.js"></script> 
<script> 
    function getId(val){ 
     //we create ajax function 
     $.ajax({ 
      type: "POST", 
      url: "getdata.php", 
      data: "id="+val, 
      success: function(data){ 
       $("#cityList").html(data); 
      } 

     }); 
    } 

</script> 
</body> 

访问getdata.php脚本:

<?php 

include('connect2-mysql.php'); 

if(!empty($_POST["id"})) { 
    $query = "SELECT * FROM city WHERE cid = $cid"; 
    $results = mysqli_query($dbcon, $query); 
    foreach ($results as $city) { 
    ?> 
    <option value="<?php echo $city["cityid"] ?>"><?php echo $city["cityname"]; ?></option> 
    <?php 


    } 

} 

?> 

File Location element inspector console

回答

1

您正在测试$_POST['id']但不attribu把它变成任何东西。

改变你的代码一点点:

if(!empty($_POST["id"})) { 
    $cid = $_POST['id']; 
    $query = "SELECT * FROM city WHERE cid = $cid"; 
    $results = mysqli_query($dbcon, $query); 
+0

@ThioriumBR我所做的变化sugguested,但第二个下拉仍然没有从第一选择填充...... – Kevin

+0

您可以在Firefox或使用元素督察Chrome浏览器查看网络流量并查看您的代码是否返回有效的HTML。它会在控制台上显示任何错误。 – ThoriumBR

+0

@ThioriumBR我在Chrome元素检查器控制台中添加了错误图片(请参阅上文)。你知道他们指的是什么吗? – Kevin