`
一场雨
  • 浏览: 48015 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

第一个ajax例子【ajax有哪几种啊,了解的指导哈】

    博客分类:
  • ajax
阅读更多
Ajax小例:登陆时验证用户是否存在,使用AJAX验证,无刷新
          如果登陆成功则跳转到一个分页列表页面,使用AJAX实现分页效果
         

Action内的代码:

//返回该登陆页面,并予以错误提示信息
response.setContentType("application/xml"); //application/xml代表的是XML形式返回
response.setHeader("Cache-Control", "no-cache"); //设置不缓存

//组织返回数据
String xml="<?xml version=\"1.0\" encoding=\"gb2312\"?>";
xml+="<message>";
xml+="<info>";
xml+="<teacher><name>name01</name><age>20</age></teacher>";
xml+="<teacher><name>name02</name><age>20</age></teacher>";
xml+="<teacher><name>name03</name><age>20</age></teacher>";
xml+="</info>";
xml+="<returnmessage>";
xml+="<returnCode>9999</returnCode>";
xml+="</returnmessage>";
xml+="</message>";

PrintWriter pw=null;
try {
//获取页面写入器
pw=response.getWriter();
} catch (IOException e) {
e.printStackTrace();
}
pw.write(xml);
pw.flush();
pw.close();
return null;



JSP里解析获取数据:

<body>
   <html:form action="/login.do?method=login" method="post">
     <html:text property="username"></html:text>
     <html:checkbox property="check" onclick="usernameCheck()">是否已经存在</html:checkbox>
     <html:text property="password"></html:text>
     <html:submit></html:submit>
     <html:reset></html:reset>
     <span id="checklogin"/>
   </html:form><br><br><br></body>
<script>
    var req; //定义全局变量
    function usernameCheck()
    {    
      var username=document.getElementById("username").value;
      var password=document.getElementById("password").value;
      var url="login.do?method=login&username="+username+"&password="+password;
     
      if(window.XMLHttpRequest)
      {
         req=new XMLHttpRequest();
      }
      else if(window.ActiveXObject)
      {
        req=new ActiveXObject("Microsoft.XMLHttp");
      }     
      if(req){
        req.open("get",url,true);
        req.onreadyStatechange=callback; //调用回调函数
        req.send(null);
      }
      return false;
    }
   
    function callback()
    {
       if(req.readyState==4)  //加载完毕
       {
          if(req.status==200)
          {
            parseMessage(); //解析数据
          }
          else
       {
         alert(req.status);
         alert('Not able to litrieve description');
       }
       }
       else
       {
         //正在加载
         document.getElementById("checklogin").innerHTML="正在加载........";
       }  
    }
   
    function parseMessage()
    {
  this.itemList = new Array();
      var xmlDoc=req.responseXML.documentElement; //接收XML格式的数据
      var messages=xmlDoc.getElementsByTagName("info");
      var mlength=messages.length; 
      alert(mlength);  
      if(mlength>0)
      {
           var teacher=messages[0].getElementsByTagName("teacher");
           for( var j=0;j<teacher.length;j++)
           {
             var name=teacher[j].getElementsByTagName("name")[0].firstChild.nodeValue;
             var age=teacher[j].getElementsByTagName("age")[0].firstChild.nodeValue;
             alert('No:0'+' name:'+name+'\nage:'+age);
             this.itemList.push(new Array(name,age));
           }
      }
         
      var returnmessage=xmlDoc.getElementsByTagName("returnmessage");
      var returnCode=returnmessage[0].getElementsByTagName("returnCode")[0].firstChild.nodeValue;
          
      alert(this.itemList.length);
      document.getElementById("checklogin").innerHTML=returnCode;
    }
  
  </script>


分享到:
评论
3 楼 一场雨 2008-04-29  
不是很了解这上面  post 和  get的区别
2 楼 hzl091 2008-04-29  
主要是QQ的天气预报
1 楼 hzl091 2008-04-29  
<html>
<head>
<meta content="text/html; charset=gb2312" http-equiv="Content-Type">
<link rel="stylesheet" href="http://weather.qq.com/7v/css/wz1.css" type="text/css">
</head>
<script>
var req = false;

var ajax = function(){
this.method   = 'GET';
this.url      = '';
this.postData = null;
this.callBack = null;

this.create = function(){
if(window.XMLHttpRequest){
req = new XMLHttpRequest();
}
else if(window.ActiveXObject){
req = new ActiveXObject('Microsoft.XMLHttp');
}
}

this.sendReq = function(){
if(req){
req.open(this.method,this.url,true);
req.onreadystatechange = this.callBack;
if(this.method.toLowerCase() == 'post'){
req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
}
req.send(this.postData);
}
else{
alert('ajax对象创建失败!!');
}
}
}


function callBack(){
var d = document.getElementById('d1');
if(req.readyState == 4){
if(req.status == 200){
if(d){
d.innerHTML = '';
d.innerHTML = req.responseText;
}

}
}
else if(req.readyState < 4){
if(d){
d.innerHTML = '';
d.innerHTML = '正在加载数据,请稍等...';
}
}
}

var a = new ajax();

function page_load(){
var city = [];
city[city.length] = {city_name:'北京',url:'http://weather.news.qq.com/inc/07_dc125.htm'}
city[city.length] = {city_name:'长沙',url:'http://weather.news.qq.com/inc/07_dc218.htm'}
city[city.length] = {city_name:'武汉',url:'http://weather.news.qq.com/inc/07_dc211.htm'}
city[city.length] = {city_name:'哈尔滨',url:'http://weather.news.qq.com/inc/07_dc17.htm'}
city[city.length] = {city_name:'长春',url:'http://weather.news.qq.com/inc/07_dc103.htm'}
city[city.length] = {city_name:'广州',url:'http://weather.news.qq.com/inc/07_dc292.htm'}
city[city.length] = {city_name:'香港',url:'http://weather.news.qq.com/inc/07_dc1.htm'}

var se_city = document.getElementById('se');
if(se_city){
for(var i = 0 ; i < city.length ; i++){
se_city.options.add(new Option(city[i].city_name,city[i].url));
}
}


}


function se_change()
{
var se_city = document.getElementById('se');
var url = '';
if(se_city && se_city.options[se_city.selectedIndex].text != '请选择'){
    url = se_city.options[se_city.selectedIndex].value+'?id='+Math.random();

a.method = 'GET';
a.url = url;
a.callBack = callBack;
a.create();
a.sendReq();
}
}



</script>

<body onload = 'page_load();'>
</body>
<div id = 'div_city'>
请选择城市:
<select id = 'se' onchange = 'se_change();'>
<option>请选择</option>
</select>
</div>
<div id = 'd1'>

</div>
</html>

这是我写的一个例子

相关推荐

    JAVA上百实例源码以及开源项目

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    DWR.xml配置文件说明书(含源码)

    DWR 自动将DOM、DOM4J、JDOM和XOM转换成DOM树,前面这几种类型都仅仅返回Document,Element,Node.DWR会自动将这些转换成浏览器DOM对象.通常在启动JDOM Converter时会有一个提示信息,除非你想采用JDOMconverter否则可以...

    android转正报告怎么写.docx

    我到公司不久,第一个项目是xxx公司网站,做这个项目的时候我遇到了几个问题,我在以前公司做的时候没有在这么短的时候完成一个项目的,在效率上提高了我的能力。做这个项目的时候我也遇到android转正报告怎么写...

    庖丁解牛纵向切入ASP.NET 3.5控件和组件开发技术.pdf

    第1章 服务器控件概述及开发环境部署.1 1.1 自定义服务器控件1 1.2 服务器控件在软件开发过程中的作用1 1.3 在控件开发中提升自己2 1.4 可继承控件基类介绍2 1.5 运行一个简单的控件7 1.5.1 开发一个简单控件7...

    asp.net知识库

    Web标准和ASP.NET - 第一部分 XHTML介绍 在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把...

    jQuery权威指南-源代码

    1.1.4 编写第一个简单的jQuery应用/3 1.1.5 jQuery程序的代码风格/5 1.2 jQuery的简单应用/7 1.2.1 jQuery访问DOM对象/7 1.2.2 jQuery控制DOM对象/7 1.2.3 jQuery控制页面CSS /9 1.3 本章小结/11 第2章 ...

    jQuery详细教程

    $("ul li:first") 每个 &lt;ul&gt; 的第一个 &lt;li&gt; 元素 $("[href$='.jpg']") 所有带有以 ".jpg" 结尾的属性值的 href 属性 $("div#intro .head") id="intro" 的 &lt;div&gt; 元素中的所有 class="head" 的元素 三. jQuery 事件...

    jquery插件使用方法大全

    开发人员借此可以使用无法立即获得的返回值(如异步Ajax请求的返回结果),而且第一次能够附加多个事件处理器。 例如,使用了新的jQuery内部Ajax API就可以实现下面的代码了: // Assign handlers immediately ...

    JAVA上百实例源码以及开源项目源代码

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    一个文档结构树包含根元素,根元素是最顶级的元素,(就是紧接着XML声明语句后的第一个元素)。看例子: &lt;filelist&gt; &lt;title&gt;... &lt;author&gt;... 上面的例子分三级结构排列成"树"状,其中的就是根元素。在XML...

    PHP Ajax JavaScript Json获取天气信息实现代码

    下面给出一个简单的小例子: 复制代码 代码如下:&lt;iframe width=”420″ scrolling=”no” height=”60″ frameborder=”0″ allowtransparency=”true” src=”http://i.tianqi.com/index.php?c=code&id=12&ico

    Java优化编程(第2版)

    第1章 java程序设计风格 1.1 java文件名与文件组织结构 1.2 java文件注释头 1.3 包的声明与引用 1.4 类与接口的声明 1.5 java源文件编排格式 代码行长度与折行规则 1.6 程序注释 1.7 变量的声明初始化与放置 1.7.1 ...

    PHP和MySql WEB开发(第四版)

    本书将php开发与mysql应用相结合,分别对php和mysql做了深入浅出的分析,不仅介绍php和mysql的一般概念,而且对php和mysql的web应用做了较全面的阐述,并包括几个经典且实用的例子。 本书是第4版,经过了全面的更新...

    JQuery解析XML数据的几个简单实例

    第一种方案: [removed] $(document).ready(function() { $.ajax({ url: '//www.jb51.net/cgi/test.xml', dataType: 'xml', success: function(data){ //console.log(data); $(data).find...

    EXT教程EXT用大量的实例演示Ext实例

    7.2. 第一!乱拖。 7.3. 第二!代理proxy和目标target 8. 哭泣吧!现在才开始讲基础问题。 8.1. Ext.get 8.2. 要是我们想一下子获得一堆元素咋办? 8.3. DomHelper和Template动态生成html 8.3.1. DomHelper...

    Ext 开发指南 学习资料

    7.2. 第一!乱拖。 7.3. 第二!代理proxy和目标target 7.4. yui自远方来,不亦乐乎 7.4.1. Basic,基础 7.4.2. Handles,把手 7.4.3. On Top,总在上边 7.4.4. Proxy,代理 7.4.5. Groups,组 7.4.6. Grid,网格 ...

    EXT2.0中文教程

    7.2. 第一!乱拖。 7.3. 第二!代理proxy和目标target 8. 哭泣吧!现在才开始讲基础问题。 8.1. Ext.get 8.2. 要是我们想一下子获得一堆元素咋办? 8.3. DomHelper和Template动态生成html 8.3.1. DomHelper用来...

    亮剑.NET深入体验与实战精要2

    读者可以在欣赏一个个有趣例子的过程中,不知不觉具备开发真正商业项目的能力。 本书集实用性、思想性、趣味性于一体,内容共分为技术基础总结、系统架构设计思想及项目实战解析三部分,随书所附光盘收录大量实例...

Global site tag (gtag.js) - Google Analytics