以下是一个使用AJAX实现三级联动的例子:

HTML部分:

<select id="province">
    <option value="">请选择省份</option>
</select>
<select id="city">
    <option value="">请选择城市</option>
</select>
<select id="district">
    <option value="">请选择区县</option>
</select>

JavaScript部分:

// 获取省份数据
function getProvince() {
    $.ajax({
        url: 'get_province.php', // 后端接口地址,返回省份数据
        type: 'GET',
        dataType: 'json',
        success: function(data) {
            // 清空城市和区县下拉框
            $("#city").empty();
            $("#district").empty();
            // 添加省份选项
            $.each(data, function(index, province) {
                $("#province").append('<option value="' + province.id + '">' + province.name + '</option>');
            });
        }
    });
}

// 获取城市数据
function getCity(provinceId) {
    $.ajax({
        url: 'get_city.php', // 后端接口地址,返回城市数据
        type: 'GET',
        data: { provinceId: provinceId },
        dataType: 'json',
        success: function(data) {
            // 清空区县下拉框
            $("#district").empty();
            // 添加城市选项
            $.each(data, function(index, city) {
                $("#city").append('<option value="' + city.id + '">' + city.name + '</option>');
            });
        }
    });
}

// 获取区县数据
function getDistrict(cityId) {
    $.ajax({
        url: 'get_district.php', // 后端接口地址,返回区县数据
        type: 'GET',
        data: { cityId: cityId },
        dataType: 'json',
        success: function(data) {
            // 添加区县选项
            $.each(data, function(index, district) {
                $("#district").append('<option value="' + district.id + '">' + district.name + '</option>');
            });
        }
    });
}

// 页面加载完成后获取省份数据
$(document).ready(function() {
    getProvince();
});

// 省份下拉框改变时获取对应的城市数据
$("#province").change(function() {
    var provinceId = $(this).val();
    if (provinceId != '') {
        getCity(provinceId);
    } else {
        $("#city").empty();
        $("#district").empty();
    }
});

// 城市下拉框改变时获取对应的区县数据
$("#city").change(function() {
    var cityId = $(this).val();
    if (cityId != '') {
        getDistrict(cityId);
    } else {
        $("#district").empty();
    }
});

PHP部分(get_province.php):

<?php
// 返回省份数据
$provinces = array(
    array('id' => 1, 'name' => '北京'),
    array('id' => 2, 'name' => '上海'),
    array('id' => 3, 'name' => '广东')
);
echo json_encode($provinces);
?>

PHP部分(get_city.php):

<?php
// 获取省份ID
$provinceId = $_GET['provinceId'];

// 返回城市数据
$cities = array();
if ($provinceId == 1) {
    $cities = array(
        array('id' => 11, 'name' => '北京市')
    );
} else if ($provinceId == 2) {
    $cities = array(
        array('id' => 21, 'name' => '上海市')
    );
} else if ($provinceId == 3) {
    $cities = array(
        array('id' => 31, 'name' => '广州市'),
        array('id' => 32, 'name' => '深圳市')
    );
}
echo json_encode($cities);
?>

PHP部分(get_district.php):

<?php
// 获取城市ID
$cityId = $_GET['cityId'];

// 返回区县数据
$districts = array();
if ($cityId == 11) {
    $districts = array(
        array('id' => 111, 'name' => '东城区'),
        array('id' => 112, 'name' => '西城区')
    );
} else if ($cityId == 21) {
    $districts = array(
        array('id' => 211, 'name' => '黄浦区'),
        array('id' => 212, 'name' => '徐汇区')
    );
} else if ($cityId == 31) {
    $districts = array(
        array('id' => 311, 'name' => '天河区'),
        array('id' => 312, 'name' => '越秀区')
    );
} else if ($cityId == 32) {
    $districts = array(
        array('id' => 321, 'name' => '福田区'),
        array('id' => 322, 'name' => '南山区')
    );
}
echo json_encode($districts);
?>

以上代码实现了一个简单的三级联动,当选择省份时,会根据省份ID获取对应的城市数据,再根据城市ID获取对应的区县数据,并将数据添加到对应的下拉框中

使用ajax三级联动添加数据并显示

原文地址: https://www.cveoy.top/t/topic/h1rt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录