Ajax达成动态加载组合框的实例代码,jqtransform完成动态加载selectwww.301.net

一  province.jsp

ajax() 方法通过 HTTP 请求加载远程数据。

今日在工作的时候碰着三个标题,页面中公司名称是在项目名称选用后用ajax读抽取来的。然而jqtransform是在页面加载成功后调用的,所以变成了公司名称下拉框不只怕显示最新的数据。

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 <html>
  <head>
   <script type="text/javascript" language="javaScript">
    var xmlHttp = false; //全局变量,用于记录XMLHttpRequest对象
    function createXMLHttpRequest() {
     if(window.ActiveXObject) { //Internet Explorer时,创建XMLHttpRequest对象的方法
      try {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
     } catch(e) {
      try {       xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
       //旧版本的Internet Explorer,创建XMLHttpRequest对象
      } catch(e) {
       window.alert("创建XMLHttpRequest对象错误"+e);
      } 
     }
    } else if(window.XMLHttpRequest) { //mozilla时,创建XMLHttpRequest对象的方法
      xmlHttp = new XMLHttpRequest();
     } 
    if(!(xmlHttp)) { //未成功创建XMLHttpRequest对象
      window.alert("创建XMLHttpRequest对象异常!");
    } 
    }
   //下拉列表项改变时的操作
   function proChange(objVal) {
     createXMLHttpRequest(); //创建XMLHttpRequest对象
     document.getElementById("city").length = 1;   //根据ID获取指定元素,并赋值
     xmlHttp.onreadystatechange = cityList; //指定onreadystatechange处理函数
     var url="CityByXMLServlet?province="+objVal; //请求的URL地址
     xmlHttp.open("POST",url,true);
     xmlHttp.send(null);
    }
    function cityList() { //onreadystatechange的处理函数
    if(xmlHttp.readyState==4) {
      if(xmlHttp.status==200) {
       parseXML(xmlHttp.responseXML);   //解析服务器返回的XML数据
     }
     }
   }
    //解析xml信息,以添加地市
    function parseXML(xmlDoc) {
    var len = xmlDoc.getElementsByTagName("city");
    //获取XML数据中所有的“city”元素对象集合
     var _citySel = document.getElementById("city");   //根据ID获取页面中的select元素
     for(var i=0;i<len.length;i++) { //遍历XML数据并给select元素添加选项
     var opt = document.createElement("OPTION");   //创建option对象
     opt.text = xmlDoc.getElementsByTagName("city")[i].firstChild.data;
     //指定新创建元素的text属性值
     opt.value = xmlDoc.getElementsByTagName("city")[i].firstChild.data;
    //指定新创建元素的value属性值
     _citySel.add(opt); //为select元素添加option
    }
    }
   </script>
   <title>动态加载组合框</title>
  </head>
  <body>
   <table align="center" border=1 width="320">
    <tr>
     <td>省份:</td>
    <td>
     <select id="province" onChange="proChange(this.value);" style="width:85">
      <option value="gd">广东</option>
       <option value="gx">广西</option>
       <option value="hn">湖南</option>
      <option value="hb">湖北</option>
      <option value="ah">安徽</option>
     </select>
    </td>
    </tr>
   <tr>
    <td>城市:</td>
    <td>
     <select id="city" style="width:85">
       <option value="">--请选择--</option>
     </select>
    </td>
    </tr>
   </table>
 </body>
 </html> 

该格局是 jQuery 底层 AJAX 达成。简单易用的高层达成见 $.get, $.post
等。$.ajax() 重返其创建的 XMLHttpRequest
对象。大繁多状态下您无需直接操作该函数,除非你供给操作不经常用的选项,以获得更多的油滑。

<link rel="stylesheet" href="${ctx}/jqtransformplugin/jqtransform.css" type="text/css"></link> 
<script type="text/javascript" src="${ctx}/jqtransformplugin/jquery.jqtransform.js"></script> 
<SCRIPT type="text/javascript"> 
        $(function(){ 
            $('form').jqTransform({imgPath:'images/JQueryformimg/'}); 
        }); 
</SCRIPT>

二、CityByXMLServlet.java

最轻易易行的状态下,$.ajax() 能够不带别的参数直接动用。

www.301.net 1

package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.*;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class CityByXMLServlet
 */
@WebServlet("/CityByXMLServlet")
public class CityByXMLServlet extends HttpServlet {
 private static final long serialVersionUID = 1L;
  private static final String CONTENT_TYPE = "text/xml; charset=UTF-8";
  /**
   * @see HttpServlet#HttpServlet()
   */
  public CityByXMLServlet() {
    super();
    // TODO Auto-generated constructor stub
  }
 /**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 */
  public void doGet(HttpServletRequest request, HttpServletResponse response)
         throws ServletException, IOException {
      response.setContentType(CONTENT_TYPE); //设置服务器响应类型
       String province =request.getParameter("province");
       StringBuffer city = new StringBuffer("<citys>"); //记录返回XML串的对象
       if("gx".equals(province)){
       List list=cityInit(); //获取城市列表
        for(int i=0;i<list.size();i++){
           city.append("<city>"+list.get(i)+"</city>");
        }      
       }else if("hn".equals(province)){
       List list = cityInit1(); //获取城市列表
       for(int j=0;j<list.size();j++){
           city.append("<city>"+list.get(j)+"</city>");
       }
        }else if("hb".equals(province)){
        List list = cityInit2(); //获取城市列表
        for(int j=0;j<list.size();j++){
           city.append("<city>"+list.get(j)+"</city>");
        } 
       }
      city.append("</citys>");
      PrintWriter out = response.getWriter();
      out.println(city.toString());
      out.flush(); //输出流刷新
      out.close(); //关闭输出流
     }
     /*
     * 初始化城市
     */
  public List<String> cityInit2() {
    List<String> cityList = new ArrayList<String>();
   //添加城市列表
    cityList.add("武汉");
    cityList.add("襄阳");
    cityList.add("黄冈");
    cityList.add("荆门");
    cityList.add("十堰");
    cityList.add("黄石");
    return cityList;
  }
     public List<String> cityInit(){
       List<String> cityList = new ArrayList<String>();
     //添加城市列表
       cityList.add("南宁");
       cityList.add("桂林");
       cityList.add("北海");
       cityList.add("河池");
       cityList.add("梧州");
       cityList.add("玉林");
    return cityList;
   }
    public List<String> cityInit1() {
    List<String> cityList = new ArrayList<String>();
   //添加城市列表
    cityList.add("长沙");
    cityList.add("湘潭");
    cityList.add("岳阳");
    cityList.add("常德");
    cityList.add("衡阳");
    cityList.add("邵阳");
    return cityList;
  }
    /**
     *当前Servelt的初始化方法. <br>
     *
     * @throws ServletException发生ServletExceptio时抛出
     */
    public void init() throws ServletException {
    }
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 doGet(request, response);
 }
}

因此 AJAX 加载一段文本:

www.301.net 2

三 web.xml

jQuery 代码:

www.301.net 3

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.4">
<servlet>
  <servlet-name>CityByXMLServlet</servlet-name>
  <servlet-class>servlet.CityByXMLServlet</servlet-class><!--类的位置 -->
</servlet>
<servlet-mapping>
  <servlet-name>CityByXMLServlet</servlet-name><!--你创建的类名 -->
  <url-pattern>/CityByXMLServlet</url-pattern>
</servlet-mapping>
$(document).ready(function(){
 $("#b01").click(function(){
 htmlobj=$.ajax({url:"/jquery/test1.txt",async:false});
 $("#myDiv").html(htmlobj.responseText);
 });
});

用firebug能够见见数据实际上早就拼接上去了,可是form已经在页面加载后已经调用过jqTransform方法,
jqTransformSelectWrapper里面包车型地铁ul数据尚未立异。想了好久垄断用简易凶横的不二等秘书籍把ul更新掉。

总结

以上所述正是本文的全体内容了,希望大家可以欣赏。

    function companyAjax(proid){ 
        $.ajax({  
            type:"POST", 
            url:"${pageContext.request.contextPath}/recordsearch/ajax/getCompanyAjax.do", 
            dataType:"json", 
            data:{proid : proid}, 
            success:function(jsondata){ 
                var tmp=''; 
                tmp+='<select id="centerid" name="centerid" onchange="comChange()" style="width: 160px;" name="centerid">'; 
                //$("#centerid").empty();                tmp+='<option value="">--请选择--</option>'; 
                for(var i=0;i<jsondata.length;i++){ 
                    tmp+='<option value="'+jsondata[i].centerid+'">'+jsondata[i].centername+'</option>'; 
                } 
                tmp+='</select>'; 
                $("#centerid").parent().remove(); 
                $("#comLable").after(tmp); 
                $("#centerid").jqTransSelect(); 
            } 
        }); 
    }

如上所述是笔者给大家介绍的Ajax落成动态加载组合框的实例代码,希望对大家全体支持,如若我们有此外难点接待给自家留言,小编会及时回复我们的!

您可能感兴趣的小说:

  • AJAX和jQuery动态加载数据的完成形式
  • DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的艺术(排序,过滤,分页等)
  • 利用PHP+AJAX让WordPress动态加载小说的教程
  • php+ajax达成无刷新动态加载数据技能
  • 选择ajax+jqtransform达成动态加载select
  • Ajax动态加载数据库示例
  • 用ajax动态加载需求的js文件
  • 行使Dojo和JSON建设构造Infiniti级AJAX动态加载的功用模块树
  • Ajax达成动态加载组合框的实例代码

哈哈哈,在ajax查询集团数据现在,将jqtransform生成的select相关的div删除掉,然后把selct拼接上,再重复开端化select。方法相比较蠢,不过先用着啊,将来有更加好的不二等秘书籍加以。

你或许感兴趣的小说:

  • AJAX和jQuery动态加载数据的兑现方式
  • DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的艺术(排序,过滤,分页等)
  • 采纳PHP+AJAX让WordPress动态加载小说的学科
  • jQuery结合ajax完成动态加载文本内容
  • php+ajax落成无刷新动态加载数据技艺
  • 利用ajax+jqtransform完毕动态加载select
  • Ajax动态加载数据库示例
  • 用ajax动态加载要求的js文件
  • 应用Dojo和JSON创设Infiniti级AJAX动态加载的成效模块树

www.301.net 4

是否很炫目。。哈哈,其实依旧jqtransform相比较给力,小友人们现在必要利用类似意义的话,能够参照下。

你大概感兴趣的篇章:

  • AJAX和jQuery动态加载数据的兑现格局
  • DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的章程(排序,过滤,分页等)
  • 选择PHP+AJAX让WordPress动态加载作品的教程
  • jQuery结合ajax实现动态加载文本内容
  • php+ajax完毕无刷新动态加载数据技能
  • Ajax动态加载数据库示例
  • 用ajax动态加载须求的js文件
  • 动用Dojo和JSON构建Infiniti级AJAX动态加载的效能模块树
  • Ajax落成动态加载组合框的实例代码

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注