您的位置:首页 > 编程语言 > Java开发

java+ajax(三级连动下拉框)

2008-04-21 13:05 405 查看

java+ajax(三级连动下拉框)

两个.JSP文件放在同一个目录文件下,启动.
MyJsp10.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

response.setContentType("text/html;charset=gb2312");

request.setCharacterEncoding("gb2312");

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<base href="<%=basePath%>">

<title>My JSP 'MyJsp.jsp' starting page</title>

<script type="text/javascript" language="javascript">

var http_request = false;

var optionValue="";

function send_request(url) {//初始化,指定处理函数,发送请求的函数

http_request = false;

if (window.XMLHttpRequest) { // Mozilla浏览器

http_request = new XMLHttpRequest();

if (http_request.overrideMimeType) {

http_request.overrideMimeType('text/xml');//设置MIME类别

}

} else if (window.ActiveXObject) { // IE 浏览器

try {

http_request = new ActiveXObject("Msxml2.XMLHTTP");

http_request.overrideMimeType('text/xml');//设置MIME类别

} catch (e) {

try {

http_request = new ActiveXObject("Microsoft.XMLHTTP");

} catch (e) {}

}

}

if (!http_request) {//异常,创建对象实例失败

alert('Giving up :( 创建对象实例失败');

return false;

}

http_request.onreadystatechange = processRequest;

http_request.open('post', url, true);

http_request.send(null);

}

function processRequest() {

if (http_request.readyState == 4) {

if (http_request.status == 200) {

optionValue=http_request.responseText+"";

setSelectObj(optionValue);

} else {

alert('你所请求的页面有问题');

}

}

}

function showRoles(obj){

document.getElementById(obj).parentNode.style.display="";

document.getElementById(obj).innerHTML="正在读取数据........";

testPos=obj;

send_request('sample_10.jsp');

}

function getCity(cityObj){

send_request("sample_10.jsp?flag=city&pid="+cityObj);

}

function getCounty(countyObj){

send_request("sample_10.jsp?flag=county&ciid="+countyObj);

}

/*function commonCopyValue(orignObj, destObj){

if (orignObj.type == "select-one" && destObj.type == "select-one"){

for (var i = 0; i < orignObj.length; i++) {

if (trim(orignObj[i].value) != "") {

destObj.add(new Option(orignObj[i].text, orignObj[i].value));

}

}

}

} */

function setSelectObj(obj){

var arr1=obj.split('@');

var str=arr1[2]+"";

if(arr1[2]=="city\r\n"){

var arr2=arr1[0].split(',');

var arr3=arr1[1].split(',');

var selectCityObj= document.getElementById("city");

//删除原来的

if(selectCityObj.value!=""){

for(var i=0;i<100;i++){

selectCityObj.remove(0);

}

}

//增加新的

for(var i=0;i<arr2.length;i++){

selectCityObj.add(new Option(arr3[i],arr2[i]));

}

}else if(arr1[2]=="county\r\n") {

var arr2=arr1[0].split(',');

var arr3=arr1[1].split(',');

var selectCountyObj= document.getElementById("county");

//删除原来的

if(selectCountyObj.value!=""){

for(var i=0;i<100;i++){

selectCountyObj.remove(0);

}

}

//增加新的

for(var i=0;i<arr2.length;i++){

selectCountyObj.add(new Option(arr3[i],arr2[i]));

}

}

}

</script>

</head>

<body onload="window.status='小波资源'">

<form name="form1" action="" method="post">

请选择省份:<select name="province" id="province" onChange="getCity(this.value)" >

<option value="1">北京</option>

<option value="2">上海</option>

<option value="3">天津</option>

<option value="4">重庆</option>

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

<option value="6">湖南</option>

<option value="7">湖北</option>

</select>  

请选择城市:<select name="city" id="city" onChange="getCounty(this.value)">

<%--<option value="33">株洲</option>

<option value="34">邵阳</option>

<option value="35">湘潭</option> --%>

</select>  

请选择区县:<select name="county" id="county">

<%--<option value="21">海淀1</option>

<option value="22">虹桥1</option>

<option value="23">中山2</option>--%>

</select>

</form>

</body>

</html>


sample_10.jsp

<%@ page language="java" import="java.util.*,java.sql.*"

pageEncoding="UTF-8"%>

<%

Connection conn = null;

ResultSet rs = null;

PreparedStatement ps = null;

String ci_id = "";

String ci_name = "";

String co_id = "";

String co_name = "";

String pid = request.getParameter("pid");

String ciid = request.getParameter("ciid");

String flag = request.getParameter("flag");

try {

Class.forName("oracle.jdbc.OracleDriver");

String ur1 = "jdbc:oracle:thin:@localhost:1521:servicesname";

conn = DriverManager.getConnection(ur1, "username", "pwd");

StringBuffer sb = new StringBuffer("");//

StringBuffer sb1 = new StringBuffer("");//

if (pid != null && ("city".equals(flag) || "city" == flag)) {

ps = conn.prepareStatement("select * from city where p_id='"+ pid + "'");

rs = ps.executeQuery();

while (rs.next()) {

ci_id = rs.getString("ci_id");

ci_name = rs.getString("ci_name");

sb.append( ci_id + ",");

sb1.append(ci_name+",");

}

String str1=sb.substring(0,sb.length()-1);

String str2=sb1.substring(0,sb1.length()-1);

out.print(str1+"@"+str2+"@city");

} else if (ciid != null && ("county".equals(flag) || "county" == flag)) {

ps = conn.prepareStatement("select * from county where ci_id='"+ ciid + "'");

rs = ps.executeQuery();

StringBuffer sb2 = new StringBuffer("");//

StringBuffer sb3 = new StringBuffer("");//

while (rs.next()) {

co_id = rs.getString("co_id");

co_name = rs.getString("co_name");

sb2.append(co_id+",");

sb3.append(co_name+",");

}

String str3=sb2.substring(0,sb2.length()-1);

String str4=sb3.substring(0,sb3.length()-1);

out.print(str3+"@"+str4+"@county");

}

} catch (Exception ex) {

ex.printStackTrace();

out.println("异常:" + ex.getMessage());

} finally {

try {

rs.close();

ps.close();

if (conn != null)

conn.close();

} catch (Exception e) {

rs = null;

ps = null;

conn = null;

e.printStackTrace();

}

}

%>

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: