谌花兰 发表于 2013-1-29 11:24:39

Ajax异步提交

<form action="" method="get">
    客户:<input type="text" id="customerId" name="customerId" onchange="getCustomerinfo();"/>
    订单:<select id="ordersNumber" name="ordersNumber">
   </select>
   <input type="submit" value="查询"/>
</form>

<script language="javascript" type="text/javascript">
   var ajaxRequest;
   try {
       ajaxRequest = new XMLHttpRequest();
   }catch(e) {
       try {
ajaxRequest = new ActiveXObject("Msxml2.xmlhttp");
       }catch(e){
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
       }
   }
   function getCustomerinfo(){
       var customerId = document.getElementById("customerId").value;
       var url = "selectCustomerInfo?customerId=" + escape(customerId);
       ajaxRequest.onreadystatechange = updateSelect;
       ajaxRequest.open("GET",url,true);
       ajaxRequest.send(null);
   }
   function updateSelect(){
       if(ajaxRequest.readyState == 4) {
if(ajaxRequest.status == 200) {
    var ordersNumber = ajaxRequest.responseText.split('|');
    var c = document.getElementById("ordersNumber");
    c.length=0;
    for(var i=0;i<ordersNumber.length-1;i++) {
      var opt = document.createElement('option');
      opt.value = ordersNumber;
      opt.innerText = ordersNumber;
      c.appendChild(opt);
    }
}
       }
   }
</script>
以下是请求所对应的类文件:
public void init() throws ServletException {
    try {
      Class.forName("com.mysql.jdbc.Driver");
    }catch(Exception e) {
      e.printStackTrace();
      System.out.println("数据库加载失败!");
    }
}
public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException {
    resp.setContentType("text/html;charset=UTF-8");
    PrintWriter out = resp.getWriter();
    String customerId = req.getParameter("customerId");
    Connection conn = null;
    PreparedStatement pstmt = null;
    try {
      String url = "jdbc:mysql://localhost:3306/transactiontest";
      conn = DriverManager.getConnection(url,"root","123456");
      String sql = "select ORDER_NUMBER from orders where CUSTOMER_ID = ?";
      pstmt = conn.prepareStatement(sql);
      pstmt.setString(1, customerId);
      ResultSet rs = pstmt.executeQuery();
      ResultSetMetaData rsmd = rs.getMetaData();
      int iCount = rsmd.getColumnCount();
      while(rs.next()) {
             for(int i=1;i<=iCount;i++) {
       out.println(rs.getString(i) + "|");
   }
      }
      out.close();
   }catch(Exception e){
e.printStackTrace();
   }
}
页: [1]
查看完整版本: Ajax异步提交