就用“用php+ajax+js+html 6级联动”提问吗?
下面是chatgpt的答案:- <!DOCTYPE html><html><head> <title>六级联动</title> <meta charset="utf-8"> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script></head><body> <select id="province"> <option value="">请选择省份</option> </select> <select id="city"> <option value="">请选择城市</option> </select> <select id="county"> <option value="">请选择区/县</option> </select> <select id="town"> <option value="">请选择乡镇/街道</option> </select> <select id="village"> <option value="">请选择村/社区</option> </select> <select id="group"> <option value="">请选择组</option> </select> <script type="text/javascript"> $(document).ready(function(){ // 加载省份数据 loadProvince(); // 选择省份时,根据省份ID加载城市数据 $("#province").change(function(){ var provinceId = $(this).val(); loadCity(provinceId); }); // 选择城市时,根据城市ID加载区县数据 $("#city").change(function(){ var cityId = $(this).val(); loadCounty(cityId); }); // 选择区县时,根据区县ID加载乡镇数据 $("#county").change(function(){ var countyId = $(this).val(); loadTown(countyId); }); // 选择乡镇时,根据乡镇ID加载村社区数据 $("#town").change(function(){ var townId = $(this).val(); loadVillage(townId); }); // 选择村社区时,根据村社区ID加载组数据 $("#village").change(function(){ var villageId = $(this).val(); loadGroup(villageId); }); }); // 加载省份数据 function loadProvince(){ $.ajax({ url: 'getData.php?type=province', dataType: 'json', success: function(data){ $("#province").html('<option value="">请选择省份</option>'); $.each(data, function(index, item){ $("#province").append('<option value="' + item.id + '">' + item.name + '</option>'); }); } }); } // 加载城市数据 function loadCity(provinceId){ $.ajax({ url: 'getData.php?type=city&provinceId=' + provinceId, dataType: 'json', success: function(data){ $("#city").html('<option value="">请选择城市</option>'); $.each(data, function(index, item){ $("#city").append('<option value="' + item.id + '">' + item.name + '</option>'); }); } }); } // 加载区县数据 function loadCounty(cityId){ $.ajax({ url: 'getData.php?type=county&cityId=' + cityId, dataType: 'json', success : function(data){ $("#county").html('<option value="">请选择区/县</option>'); $.each(data, function(index, item){ $("#county").append('<option value="' + item.id + '">' + item.name + '</option>'); }); } }); } // 加载乡镇数据 function loadTown(countyId){ $.ajax({ url: 'getData.php?type=town&countyId=' + countyId, dataType: 'json', success: function(data){ $("#town").html('<option value="">请选择乡镇/街道</option>'); $.each(data, function(index, item){ $("#town").append('<option value="' + item.id + '">' + item.name + '</option>'); }); } }); } // 加载村社区数据 function loadVillage(townId){ $.ajax({ url: 'getData.php?type=village&townId=' + townId, dataType: 'json', success: function(data){ $("#village").html('<option value="">请选择村/社区</option>'); $.each(data, function(index, item){ $("#village").append('<option value="' + item.id + '">' + item.name + '</option>'); }); } }); } // 加载组数据 function loadGroup(villageId){ $.ajax({ url: 'getData.php?type=group&villageId=' + villageId, dataType: 'json', success: function(data){ $("#group").html('<option value="">请选择组</option>'); $.each(data, function(index, item){ $("#group").append('<option value="' + item.id + '">' + item.name + '</option>'); }); } }); }</script></body></html>
复制代码在以上代码中,首先定义了一个包含六个下拉列表框的 HTML 页面,分别对应省份、城市、区县、乡镇、村社区和组。然后使用 jQuery 的 $.ajax() 函数和 PHP 后端接口实现数据的异步加载和六级联动。
在 JavaScript 中,使用 $(document).ready() 函数在页面加载完成后执行一些初始化操作,比如加载省份数据。
然后,在每个下拉列表框的 change() 事件中,根据上级下拉列表框的值来加载下一级下拉列表框的数据。例如,在选择省份时,会根据省份 ID 加载城市数据,并将城市数据填充到对应的下拉列表框中。
在 PHP 后端接口中,根据 type 参数的不同值来获取对应的数据,例如 type=province 表示获取所有省份数据。根据不同的查询条件,查询对应的数据表并返回查询结果。 |