哪位高手有AJAX三联动下拉框的例子,JAVA的,急盼!!!

解决方案 »

  1.   

    function AjaxListEntry(url,name)
    {
        this.__name = null;    this.showResponse = function(originalRequest)
        {        var xml = originalRequest.responseXML;
            var results = xml.getElementsByTagName("entry");        var objSelect = $(__name);        // 清空列表
            while(objSelect.childNodes.length>0)
            {
              objSelect.removeChild(objSelect.childNodes[0]);
            }        // 赋值
            if(results && results.length>0)
            {
                for(var i=0;i<results.length;i++)
                {
                 var oOption = document.createElement("option");
    oOption.text = results[i].getElementsByTagName("label")[0].text;
    oOption.value = results[i].getElementsByTagName("value")[0].text;
    objSelect.options[i]=oOption;
                }
            }
        }    this.refreshList=function()
        {
            __url = url;
            __name = name;        var myAjax = new Ajax.Request(
           __url,
         {method: 'post', parameters: __pars,asynchronous:false,onComplete:this.showResponse}
         );
        }
    }使用方法:需要引入prototype1.5.1的js文件(1.4.0有bug)
    调用方法
    var ajax = new AjaxListEntry("http://xxx.com/entry.xml","myselect");
    ajax.refreshList();其中myselect是你select的name属性。
      

  2.   

    <xml version='1.0' encoding='GBK'?>
     <result>
            <entry>
                   <label>北京</label>
                   <value>1</value>
            </entry>
            <entry>
                   <label>上海</label>
                   <value>2</value>
            </entry>
     </result>
    调用上面的方法,将把myselect的下拉列表更新为北京,上海。至于服务端怎么写,随便你。
    客户端的联动事件,你也可以自由添加。
      

  3.   

    function AjaxListEntry(url,name)
    {
        this.__name = null;    this.showResponse = function(originalRequest)
        {        var xml = originalRequest.responseXML;
            var results = xml.getElementsByTagName("entry");        var objSelect = $(__name);        // 清空列表
            while(objSelect.childNodes.length>0)
            {
              objSelect.removeChild(objSelect.childNodes[0]);
            }        // 赋值
            if(results && results.length>0)
            {
                for(var i=0;i<results.length;i++)
                {
                 var oOption = document.createElement("option");
    oOption.text = results[i].getElementsByTagName("label")[0].text;
    oOption.value = results[i].getElementsByTagName("value")[0].text;
    objSelect.options[i]=oOption;
                }
            }
        }    this.refreshList=function()
        {
            __url = url;
            __name = name;        var myAjax = new Ajax.Request(
           __url,
         {method: 'post', parameters: __pars,asynchronous:false,onComplete:this.showResponse}
         );
        }
    }使用方法:需要引入prototype1.5.1的js文件(1.4.0有bug)
    调用方法
    var ajax = new AjaxListEntry("http://xxx.com/entry.xml","myselect");
    ajax.refreshList();其中myselect是你select的name属性。good!
      

  4.   

    我同时封装的还有输入框有效性验证等等,
    其实都很简单,以前都是直接调用prototype,后来有点烦了,就干脆做了一个。
      

  5.   

    你就按照我上面的放到html就可以运行了。
    url就写一个固定的xml
    就是例子。
      

  6.   

    可以看看这里: 
    Ajax实现三级联动下拉框 
    http://www.blogjava.net/rickhunter/articles/62571.html
      

  7.   

    抱歉,代码简化的时候缺了一句function AjaxListEntry(url,name)
    {
        this.__name = null;
        this.__url = null ; // 缺这个