jquery+ajax实现二级级联查询

这是我学习jquery的ajax写的第二个例子~~

查询数据库的过程我就不写了,这个例子是用jsp查询出数据后动态生成xml,ajax在解析这个xml把解析出来的数据放入页面

index.jsp

<%@ page language="java" contentType="text/html; charset=gb2312"

    pageEncoding="gb2312"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<script type="text/javascript" src="jquery-1.2.3.pack.js"></script>

<script type="text/javascript" src="select.js"></script>

</head>

<body>

省份:<select name="provice" id="province">

<option>省</option>

<option value="1">四川</option>

<option value="2">广东</option>

<option value="3">山东</option>

<option value="4">辽宁</option>

</select>

城市:<select name="city" id="city">

<option selected="selected">请选择</option>

</select>

</body>

</html>
select.js
$(document).ready(function(){

	$("#province").change(function(){

		$("#city").empty();

		$.ajax({

			type:"GET",

			//url:"citylist.jsp",//传入jsp页面来处理

			url:"CityList",//传入servlet来如里

			//dataType:"xml",

			data:"pro_id="+$("#province option:selected").val(),//传递的参数

			//error:function(){alert("error");},

			success:function(xml){

				$(xml).find("cityList").find("city").each(function(){//解析jsp动态生成的xml 

					var name = $(this).find("name").text();

					var city_id = $(this).find("city_id").text();

					$("#city").append("<option value="+city_id+">"+name+"</option>");//把解析出来的书库写入页面

				})

				

			}



		});

	});

});
 
citylist.jsp
<%@page import="java.io.PrintWriter"%>

<%@page import="com.City"%>

<%@page import="com.GetCityList"%>

<%@page import="java.util.List"%>

<%

String pro_idStr = request.getParameter("pro_id");//获取从select.js传过来的省份编号

int pro_id = Integer.parseInt(pro_idStr);

List<com.City> l = null;

l = com.GetCityList.getcity(pro_id);//以省份编号查询出该省里的城市对象 并存入list

response.setContentType("text/xml;charset=gb2312");//一定要注意写成text/xml 这样才能动态生成xml文件

PrintWriter o = response.getWriter();

o.println("<?xml version=/"1.0/" encoding=/"gb2312/"?>");

o.println("<cityList>");

for(City city:l)

{

	o.println("<city>");

	o.println("<name>"+city.getCity()+"</name>");

	o.println("<pro_id>"+city.getPro_id()+"</pro_id>");

	o.println("<city_id>"+city.getCity_id()+"</city_id>");

	o.println("</city>");

}

o.println("</cityList>");

o.flush();

%>
自己写的例子~~~jquery初学者 如有错误请指教 谢谢
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
三级级联下拉菜单可以通过Jquery+Ajax实现,以下是一个简单的示例代码: HTML代码: ```html <select id="province"> <option value="">请选择省份</option> <option value="北京">北京</option> <option value="上海">上海</option> <option value="广东">广东</option> </select> <select id="city"> <option value="">请选择城市</option> </select> <select id="district"> <option value="">请选择区县</option> </select> ``` Jquery+Ajax代码: ```javascript $(document).ready(function() { // 加载省份列表 $.ajax({ type: "GET", url: "province.php", success: function(data) { $("#province").append(data); } }); // 省份选项改变时,加载城市列表 $("#province").change(function() { var province = $(this).val(); $("#city").html("<option value=''>请选择城市</option>"); $("#district").html("<option value=''>请选择区县</option>"); if (province != "") { $.ajax({ type: "GET", url: "city.php", data: {"province": province}, success: function(data) { $("#city").append(data); } }); } }); // 城市选项改变时,加载区县列表 $("#city").change(function() { var province = $("#province").val(); var city = $(this).val(); $("#district").html("<option value=''>请选择区县</option>"); if (city != "") { $.ajax({ type: "GET", url: "district.php", data: {"province": province, "city": city}, success: function(data) { $("#district").append(data); } }); } }); }); ``` 在省份、城市、区县列表对应的php文件中,需要根据传入的参数返回对应的选项列表。例如,city.php文件可能如下所示: ```php $province = $_GET["province"]; echo "<option value=''>请选择城市</option>"; if ($province == "北京") { echo "<option value='北京市'>北京市</option>"; } else if ($province == "上海") { echo "<option value='上海市'>上海市</option>"; } else if ($province == "广东") { echo "<option value='广州市'>广州市</option>"; echo "<option value='深圳市'>深圳市</option>"; echo "<option value='珠海市'>珠海市</option>"; } ``` 类似地,district.php文件也需要根据传入的参数返回对应的选项列表。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值