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
}
}
?>
@ThioriumBR我所做的變化sugguested,但第二個下拉仍然沒有從第一選擇填充...... – Kevin
您可以在Firefox或使用元素督察Chrome瀏覽器查看網絡流量並查看您的代碼是否返回有效的HTML。它會在控制檯上顯示任何錯誤。 – ThoriumBR
@ThioriumBR我在Chrome元素檢查器控制檯中添加了錯誤圖片(請參閱上文)。你知道他們指的是什麼嗎? – Kevin