写一份基于AJAX实现三级的级联下拉菜单
时间: 2023-12-19 10:06:23 浏览: 78
好的,以下是一个基于 AJAX 实现三级级联下拉菜单的示例代码:
HTML代码:
```html
<select id="province">
<option value="">请选择省份</option>
<!--省份选项内容通过 AJAX 动态加载-->
</select>
<select id="city">
<option value="">请选择城市</option>
<!--城市选项内容通过 AJAX 动态加载-->
</select>
<select id="district">
<option value="">请选择区县</option>
<!--区县选项内容通过 AJAX 动态加载-->
</select>
```
JavaScript代码:
```javascript
//省份下拉框改变事件
$('#province').on('change', function() {
var provinceId = $(this).val(); //获取选中的省份的ID
if (provinceId) { //判断是否选择了省份
//发送 AJAX 请求获取城市列表
$.ajax({
url: '/api/city',
type: 'get',
data: {'province_id': provinceId},
dataType: 'json',
success: function(data) {
//成功获取城市列表后,更新城市下拉框的选项
$('#city').html('<option value="">请选择城市</option>');
if (data && data.length > 0) {
for (var i = 0; i < data.length; i++) {
$('#city').append('<option value="' + data[i].id + '">' + data[i].name + '</option>');
}
}
//更新区县下拉框的选项
$('#district').html('<option value="">请选择区县</option>');
},
error: function(xhr, status, error) {
console.error(error);
}
});
} else { //如果没有选择省份,清空城市和区县下拉框的选项
$('#city').html('<option value="">请选择城市</option>');
$('#district').html('<option value="">请选择区县</option>');
}
});
//城市下拉框改变事件
$('#city').on('change', function() {
var cityId = $(this).val(); //获取选中的城市的ID
if (cityId) { //判断是否选择了城市
//发送 AJAX 请求获取区县列表
$.ajax({
url: '/api/district',
type: 'get',
data: {'city_id': cityId},
dataType: 'json',
success: function(data) {
//成功获取区县列表后,更新区县下拉框的选项
$('#district').html('<option value="">请选择区县</option>');
if (data && data.length > 0) {
for (var i = 0; i < data.length; i++) {
$('#district').append('<option value="' + data[i].id + '">' + data[i].name + '</option>');
}
}
},
error: function(xhr, status, error) {
console.error(error);
}
});
} else { //如果没有选择城市,清空区县下拉框的选项
$('#district').html('<option value="">请选择区县</option>');
}
});
//页面加载完成后,加载省份列表
$(document).ready(function() {
//发送 AJAX 请求获取省份列表
$.ajax({
url: '/api/province',
type: 'get',
dataType: 'json',
success: function(data) {
//成功获取省份列表后,更新省份下拉框的选项
$('#province').html('<option value="">请选择省份</option>');
if (data && data.length > 0) {
for (var i = 0; i < data.length; i++) {
$('#province').append('<option value="' + data[i].id + '">' + data[i].name + '</option>');
}
}
//清空城市和区县下拉框的选项
$('#city').html('<option value="">请选择城市</option>');
$('#district').html('<option value="">请选择区县</option>');
},
error: function(xhr, status, error) {
console.error(error);
}
});
});
```
上述代码中,我们通过 AJAX 请求获取省份、城市和区县列表,并根据用户的选择动态更新下拉框的选项内容,从而实现了三级级联下拉菜单。需要注意的是,上述代码中的 AJAX 请求的 URL 和参数需要根据实际情况进行调整。
阅读全文