主要是
/*--得到远程数据--*/
var oReq;
x = new ActiveXObject("Microsoft.XMLDOM");
function getRemoteData(field1,field2,option)
{
var strA = "";
oReq = new ActiveXObject("Microsoft.XMLHTTP");
oReq.open("POST","xml.jsp?field1="+field1+"&field2="+field2+option,false);
oReq.setRequestHeader("Content-Length",strA.length);
oReq.setRequestHeader("Content-type","application/x-www-form-urlencoded");
oReq.send(strA);
}
这一段。看不懂?
/*--得到远程数据--*/
var oReq;
x = new ActiveXObject("Microsoft.XMLDOM");
function getRemoteData(field1,field2,option)
{
var strA = "";
oReq = new ActiveXObject("Microsoft.XMLHTTP");
oReq.open("POST","xml.jsp?field1="+field1+"&field2="+field2+option,false);
oReq.setRequestHeader("Content-Length",strA.length);
oReq.setRequestHeader("Content-type","application/x-www-form-urlencoded");
oReq.send(strA);
}
这一段。看不懂?
var oReq;
x = new ActiveXObject("Microsoft.XMLDOM");
//创建一个Microsoft.XMLDOM对象,该对象有几个比较常用的方法:
//load(String yourxmlfile)--从指定的位置装载一个xml文档;
//loadXML(String yourxmlstring)--装载一个符合xml格式的字符串;
function getRemoteData(field1,field2,option)
{
var strA = "";
oReq = new ActiveXObject("Microsoft.XMLHTTP");
//创建一个Microsoft.XMLHTTP对象
/*
XMLHTTP是微软的又一项基于XML的数据交换技术,主要用于在服务器与客户端交换XML数据。
该技术源于微软在其XML DOM实现中引入的一个重要对象——XMLHttpRequest(Microsoft.XMLHTTP),
它可以为客户端提供同HTTP服务器通讯的协议支持。
简而言之,它允许你打开一个到服务器上的HTTP连接,然后发送和接受数据,
并且利用Microsoft XML DOM对返回数据进行解析。
*/
oReq.open("POST","xml.jsp?field1="+field1+"&field2="+field2+option,false);
/*
初始化一个MSXL2。XMLHTT请求,并指定请求的方式(post或get,在这里指定是POST方式),URL及是否需要验证信息:
false不需要,true则需要。
*/
oReq.setRequestHeader("Content-Length",strA.length);
oReq.setRequestHeader("Content-type","application/x-www-form-urlencoded");
//设定请求的头部
oReq.send(strA);
//发送到HTTP请求到服务器端并接收服务器端的响应
}
function changeSelect(select,source,target,option)
{
getRemoteData(target,option,"&"+source+"="+select.options[select.selectedIndex].value);
clearSelect(eval("form1."+target));//eval是js的一个方法,返回一个值(form1.+变量target的值)
fillSelect(eval("form1."+target));
//调用getRemotData,clearSelect,fillSelect方法;
}/*--清空下拉框--*/
function clearSelect(select)
{
select.options.length = 0;//删去指定select对象里的options选项
select.options[select.options.length]= new Option("--请选择--","");//创建一个option对象。
}/*--填充下拉框--*/
function fillSelect(select)
{
//装载HTTP请求回来的字符串,
x.loadXML(oReq.responseText);
n=x.selectNodes("/root/id");//selectNodes根据"/root/id"返回与之匹配的IXMLDOMNodeList对象
if(n!=null)
{
for(i=0;i<n.length;i++)
{
//在指定的select对象里创建options对象,
//最终结果是生成例如"<option value=xxx>xxx</option>"的html代码。
select.options[select.options.length]=new Option(n(i).text,n(i).text);
}
}
}
<%@ page import="java.sql.*"%>
<%@ page contentType="text/html;charset=GBK"%>
<jsp:useBean id="operate" scope="page" class="SqlDispose"/>
<root>
<%
//这段是对数据库的操作,在此不多说。
ResultSet rs;
String sql;
String temp;
String field1,field2;
field1 = request.getParameter("field1");
field2 = request.getParameter("field2");temp = new String(request.getParameter(field2).getBytes("ISO8859-1"),"GBK");
sql = "select "+field1+" from product where "+field2+"='"+temp+"' group by "+field1;
rs = operate.rs(sql);
while(rs.next())
{
out.println("<id>"+rs.getString(1)+"</id>");
}
%></root>/*以上这段主要是生成一个格式如:
<root><id>1</id><id>2</id><id>3</id><id>4</id>...</root>的字符串,然后返回给客户端。
其实这段值就是oReq.responseText的值;
用alert(oReq.responseText);就可以看到了。
x.loadXML(oReq.responseText);
*/
哎呀,13点多了,得午休了。写得比较乱,不好意思。 :-)