2017-09-06 100 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