ajax级联

<script type="text/javascript">


var xmlHttp;

function createXMLHTTPRequest(){

if(window.XMLHTTPRequest){

xmlHttp = new XMLHTTPRequest();
}else if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
}


function change(){
createXMLHTTPRequest();

var id = document.getElementById("p").value;

var url = "validate_link.jsp?id="+id;

xmlHttp.open("get",url,true);

xmlHttp.onreadystatechange=callback;

xmlHttp.send(null);
}


function callback(){

if(xmlHttp.readyState==4){

if(xmlHttp.status==200){

prasXML();
}
}


}

function prasXML(){

var cityXML = xmlHttp.responseXML.documentElement;

var cityNodes = cityXML.getElementsByTagName("city");


var c = document.getElementById("c");
c.options.length=0;


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

var id = cityNodes[i].childNodes[0].childNodes[0].nodeValue;
var name = cityNodes[i].childNodes[1].childNodes[0].nodeValue;

var o = new Option(name,id);

c.add(o);
}

if(cityNodes.length==0){
var o = new Option("城市","0");
c.add(o);
}
}
</script>

</head>

<%

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=data","sa","123456");

String sql = "select * from provice";

PreparedStatement ps =conn.prepareStatement(sql);

ResultSet rs = ps.executeQuery();


%>

<body>
省份:
<select name="provice" onchange="change()" id="p">
<option value="0">省份</option>
<%
while(rs.next()){
%>
<option value="<%=rs.getInt("id")%>"><%=rs.getString("name")%></option>
<%
}
rs.close();
ps.close();
conn.close();
%>
</select>

城市:
<select id="c">
<option value="0">城市</option>
</select>


</body>


<%
response.setContentType("text/xml;charset=UTF-8");


int id = Integer.parseInt(request.getParameter("id"));

//System.out.println("----------"+id);
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=data","sa","123456");

String sql = "select * from city where pid=?";

PreparedStatement ps =conn.prepareStatement(sql);

ps.setInt(1,id);

ResultSet rs = ps.executeQuery();

StringBuffer sb = new StringBuffer();
sb.append("<cities>");
while(rs.next()){

sb.append("<city><id>"+rs.getInt("id")+"</id><name>"+rs.getString("name")+"</name></city>");

}
sb.append("</cities>");
rs.close();
ps.close();
conn.close();
//System.out.println(sb.toString());
response.getWriter().write(sb.toString());



%>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值