因此,我尝试使用PHP,MySQL和jQuery填充2个HTML下拉列表。第二个(区域)的选项将取决于第一个下拉列表(城市)中的选择。我从我的另一个工作项目中复制了代码,但无法在该项目中工作。
这是我的JavaScript代码(ajax.js):
$(document).ready(function() {
$("#city").change(function() {
var cityid = $(this).val();
if(cityid != "") {
$.ajax({
type: 'POST',
url: 'assets/inc/get.php',
data: {cityid:cityid},
success: function(response) {
var resp = $.trim(response);
$("#area").html(resp);
}
});
} else {
$("#area").html("<option selected disabled>Bir şehir seçiniz</option>");
}
});
});
get.php文件:
<?php
include('dbconfig.php');
if(isset($_POST['cityid'])){
$cityid = mysqli_real_escape_string($conn, $_POST['cityid']);
$query = 'SELECT * FROM `areas` WHERE `city`='.$cityid.' and `active`=1';
$result = mysqli_query($conn,$query) or die(mysql_error());
if(mysqli_num_rows($result) > 0) {
echo '<option selected disabled>Bölge seçiniz</option>';
while($row = mysqli_fetch_object($result)) {
echo '<option value="'.$row->id.'">'.$row->name.'</option>';
}
}
else {
echo '<option selected disabled>asdBir şehir seçiniz</option>';
}
}
?>
和HTML:
<div class="row form-group">
<div class="col-md-6">
<label for="city" class=" form-control-label">Şehir</label>
<select id="city" name="city" class="form-control">
<option selected disabled>Şehir Seçin</option>
<?php
$qry = 'select * from `cities` where `active`=1';
$res = mysqli_query($conn, $qry);
if(mysqli_num_rows($res) > 0) {
while($row = mysqli_fetch_object($res)) {
echo '<option value="'.$row->id.'"';
if($_GET['d3'] == $row->id){echo ' selected';}
echo '>'.$row->name.'</option>';
}
}
?>
</select>
</div>
<div class="col-md-6">
<label for="area" class=" form-control-label">Bölge</label>
<select id="area" name="area" class="form-control">
</select>
</div>
</div>
我在开发工具中检查了网络部分,并且ajax.js加载正常。虽然当我在城市下拉列表中选择一个值时,什么都没有发生。它根本不调用get.php文件。我已经到处搜索了几个小时,而且似乎找不到任何解决方案,而且我也不知道自己在做什么错。
非常感谢您的帮助。
答案 0 :(得分:0)
我终于通过将以下行添加到ajax.js文件的第一行中来对其进行了修复:
var $jq = jQuery.noConflict();
,然后在同一ajax.js文件中将每个$
更改为$jq
。我希望这对其他人也有帮助