ludaojuan21 发表于 2013-1-29 12:51:46

用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]
查看完整版本: 用AJAX动态构造下拉框列表值