用AJAX动态构造下拉框列表值
一.servlet构造出的AJAX返回的XML文件:public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("UTF-8"); response.setContentType("text/xml; charset=UTF-8"); response.setHeader("Cache-Control", "no-cache"); PrintWriter out = response.getWriter(); String factoryid = request.getParameter("factoryid"); String specialid = request.getParameter("specialid"); ConnDB db = new ConnDB(); Connection con = db.getConn(this); //从ORACLE取测点名称值及类型 String sql = "select menuname,logid from sys_runmenu where menutype = 'D'" ; if(!factoryid.equals("all")){ sql = sql+" and to_number(factory) = '"+factoryid+"'"; } if(!specialid.equals("all")){ sql = sql+" and specialty = '"+specialid+"'"; } try { Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery(sql); logger.info(sql); if(rs !=null){ out.println("<logs>"); logger.info("<logs>"); while(rs.next()){ out.println("<logid>"+rs.getString("logid")+"</logid>"); logger.info("<logid>"+rs.getString("logid")+"</logid>"); out.println("<logname>"+rs.getString("menuname")+"</logname>"); logger.info("<logname>"+rs.getString("menuname")+"</logname>"); } out.println("</logs>"); logger.info("</logs>"); } }catch(Exception e){ e.getMessage(); } finally{ db.close(); }}二.页面上进行解析:
// 处理返回信息的函数
function processRequest() {
if (http_request.readyState == 4) { // 判断对象状态
if (http_request.status == 200) { // 信息已经成功返回,开始处理信息
var len = http_request.responseXML.getElementsByTagName("logid").length;
if(len>0){
deloption();
for(var i=0;i<len;i++){
var logname=http_request.responseXML.getElementsByTagName("logname").firstChild.data;
var logid = http_request.responseXML.getElementsByTagName("logid").firstChild.data;
addoption(logname,logid);
}
}else{
alert("所选择运行单位或专业没有日志!");
}
} else { //页面不正常
alert("您所请求的页面有异常。");
}
}
}
三.清除列表框内容的JS:function deloption(){
var len = document.all.logid.options.length;
for(var i = len;i>=0;i--){
document.all.logid.options = null;
}
}
三.增加列表框内容的JS:
function addoption(logname,logid){
var len = document.all.logid.options.length;
document.all.logid.options = new Option(logname,logid);
}
页:
[1]