ajax+json+mysql实现的 省市联动——案例

省市联动 Demo

大体思路

  1. dao:提供两个方法
    一个是查询所有省
    通过省名称查询指定的市

  2. servlet:两个方法
    一个把所有省转换成json,发送给客户端
    通过获取省名称这个参数,然后查询该省下的所有市,转换成json,发送给客户端

  3. 前端页面:ajax1.jsp
    页面加载完成后:访问servlet,得到所有省,然后显示在添加onchange事件监听,获取选择的省名称,访问servlet,得到所有市,显示在// 给 window.onload = function() { //发送异步请求,得到所有的省,然后使用每个省生成一个 document.getElementById("p").onchange = function() { var xmlHttp = createXMLHttpRequest(); xmlHttp.open("POST", "", true); xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); // 发送 xmlHttp.send("pid=" + this.value); xmlHttp.onreadystatechange = function() { if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { //清空原来的option var citySelect = document.getElementById("c"); // 获取select中所有的子元素 var cityOptionArray = citySelect .getElementsByTagName("option"); while (cityOptionArray.length > 1) { citySelect.removeChild(cityOptionArray[1]); } //得到服务器发送过来的所有的市 var cityArray = eval("(" + xmlHttp.responseText + ")"); for (var i = 0; i < cityArray.length; i++) { var city = cityArray[i]; var optionEle = document.createElement("option"); optionEle.value = city.pid; var textNode = document.createTextNode(city.name); optionEle.appendChild(textNode); citySelect.appendChild(optionEle); } } }; }; }; script> head> <body> <select name="province" id="p"> <option>===请选择省份===option> select> <select name="city" id="c"> <option>===请选择城市===option> select> body> html>


    END.

你可能感兴趣的:(JavaWeb)