根据我在网上找到的说明,我创建了一个非常基本的动态下拉列表(级联下拉列表),用于查看数据库值,以及根据第一个字段(国家/地区)中选择的内容填充第二个字段(城市)的位置。以下是我正在使用的代码。我可以获得第一个下拉列表来填充数据库数据,但是当我在国家/地区字段中进行选择时,城市字段中没有任何内容。我认为它与我保存的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
}
}
?>
答案 0 :(得分:1)
您正在测试$_POST['id']
,但不会将其归因于任何内容。
稍微改变你的代码:
if(!empty($_POST["id"})) {
$cid = $_POST['id'];
$query = "SELECT * FROM city WHERE cid = $cid";
$results = mysqli_query($dbcon, $query);