初学ajax

来源:互联网 发布:数据可视化 js 编辑:程序博客网 时间:2024/05/16 08:48

   最近要用一个ajax实现下拉菜单级联的问题,弄的头昏脑胀的,初学没办法,网上资料很多,但是没理出头绪,最后在一个girl的帮助下,给了个例子,终于搞定了,下面捡主要的说一下,供大家参考.    

首先,在后台定义一个字符串(最后用StingBuffer拼接一下),

例: PrintWriter out = response.getWriter();

 StringBuffer str = "aa,bb";

out.print(str);

out.flush();

out.close();

然后页面接收一下

<script>

 if (window.ActiveXObject && !window.XMLHttpRequest) {                window.XMLHttpRequest=function() {                   

 return new ActiveXObject((navigator.userAgent.toLowerCase().indexOf('msie 6') != -1) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP');               

 };           

 }//取得XMLHttpRequest对象              

   var req = false;          

  var flagSelect;          

  function testName(flag,value){ //使用Ajax访问服务器            

 flagSelect = flag; //标记一下当前是选择省,还是选择市            

 req=new XMLHttpRequest();            

 if (req) {               

  req.onreadystatechange=setValue;            

 }               

 req.open('POST',"你的后台类的地址",true);//把参数带到服务器中                             

req.SetRequestHeader("Content-Type","text/xml; charset=gbk")                               //http_request.open("GET",url,true);               

req.send(null);       

  }           

function setValue(){                          

  if (req.readyState==4 ){ //访问到服务器                                       

 if(req.status==200){  //正确返回                      //alert("3");                          

 if(flagSelect=="1"){ //如果选择某个省要更新市和区                                                    

var v=req.responseText;//req.responseText是服务器返回来的字符串                                                       paint(document.all("second"),v);//更新市下拉框                         

  }                       

                 

  }              

  }           

 }           

function paint(obj,value){ //根据一对数据去更新一个下拉框               

var ops = obj.options;    

var oo = document.createElement("OPTION");    

oo.value="0";    

oo.text="  --请选择--  ";                    

 var v=value.split(";");//得到一些数据,(修改过了..)                   

while(ops.length>0){ //先清空原来的数据                     

ops.remove(0);                   

}    

 ops.add(oo);                   

 for(var i=0;i<v.length-1;i++){  //把新得到的数据显示上去                       

var o = document.createElement("OPTION");//创建一个option把它加到下拉框中                        o.value=v[i].split(",")[0];                       

o.text=v[i].split(",")[1];                       

ops.add(o);                  

  }                

 }   </script>

<body>

<select name="first" onchanage="testName(1,this.value;)">

</select>

<select name="second"></select>

</body>

搞定了,测试一下应该会成功!!

原创粉丝点击