登录  /  注册
首页 > web前端 > js教程 > 正文
AJAX提交表单数据实例分析
亚连
发布: 2018-05-25 10:50:48
原创
1173人浏览过

这篇文章主要介绍了AJAX提交表单数据的方法,实例分析了Ajax调用的原理与实现技巧,需要的朋友可以参考下

本文实例讲述了AJAX提交表单数据的方法。分享给大家供大家参考。具体如下:

var TINY={}; 
TINY.ajax = function() { 
 return { 
   /** 
   * @param string type 请求类型,post,get(目前只实现了这两种) 
   * @param strng url 请求的地址 
   * @param object data 当使用post请求时的请求参数,ex: data=> {name:'adam'} 
   * @param function callback 成功返回时的回调函数 
   */ 
  call : function(type, url, data, callback) { 
   var xhr = window.XMLHttpRequest ? new XMLHttpRequest : new ActiveXObject('Microsoft.XMLHTTP');// for ie 
   xhr.onreadystatechange = function() { 
    if (xhr.readyState == 4 && xhr.status == 200) { 
     callback.call(this, xhr.responseText); 
    } 
   } 
   switch (type.toUpperCase()) { 
   case 'POST': 
    xhr.open('POST', url, true); 
    // 这句比较重要 
    xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); 
    var formData = ''; 
    for ( var i in data) { 
     formData += i + '=' + data[i] + '&'; 
    } 
    xhr.send(formData); 
    break; 
   default: 
    xhr.open('GET', url, true); 
    xhr.send(null) 
    break; 
   } 
  } 
 } 
}();
登录后复制

遍历表单各元素,将参数值组织成JSON格式

这里对CheckBox复选框做了特殊处理,后台接收到的该值为所有复选框值用逗号的拼接

function serialForm(form){ 
 var e = form.elements; 
 var ht = new Array(); 
 var checkbox = new Array(); 
 for(var i = 0; i < e.length; i++) { 
  if(e[i].type=="checkbox"){ 
   if(e[i].checked){ 
    if(checkbox[e[i].name] != null) checkbox[e[i].name].push(e[i].value); 
    else checkbox[e[i].name] = [e[i].value]; 
   } 
  } else { 
   ht.push(e[i].name+":'"+e[i].value+"'"); 
   ht.push(","); 
  } 
 } 
 for (var ddd in checkbox ){ 
  ht.push(ddd + ":'" + checkbox[ddd] + "'"); 
  ht.push(","); 
 } 
 ht.push("nt:0"); 
 return eval('({' + ht.join("") + '})'); 
};
登录后复制

AJAX的调用:

TINY.ajax.call('post', 'listfrom.do', serialForm(frm), function(data){ 
  var ret = eval('('+data+')'); 
  if(ret.errid==0){ 
   alert(ret.text); 
   window.location.reload(); 
  } 
  else{ 
   alert(ret.text); 
  } 
});
登录后复制

谈到服务器端返回的JSON格式数据,支持如下格式

String str = "[{\"mailAddr\":\"edison@163.com\"}, {\"mailAddr\":\"jay@263.com\"}]";
response.setContentType("application/json;charset=UTF-8");
response.getWriter().write(str);
登录后复制

前端调用

function show(){ 
 $.post("listmail.do", {"name" : "John"}, function(data){
  for(var i = 0; i < data.length; i++){
   alert(data[i].mailAddr);
  }
 }, "json");
}
登录后复制

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

浅析Asp.net MVC 中Ajax的使用

JQuery Ajax动态生成Table表格

AJAX跨域请求之JSONP获取JSON数据

以上就是AJAX提交表单数据实例分析的详细内容,更多请关注php中文网其它相关文章!

相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 技术文章
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2023 //m.sbmmt.com/ All Rights Reserved | 苏州跃动光标网络科技有限公司 | 苏ICP备2020058653号-1

 | 本站CDN由 数掘科技 提供

登录PHP中文网,和优秀的人一起学习!
全站2000+教程免费学