动态下拉列表PHP AJAX

时间:2017-09-06 20:45:25

标签: php mysql ajax

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

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 个答案:

答案 0 :(得分:1)

您正在测试$_POST['id'],但不会将其归因于任何内容。

稍微改变你的代码:

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