AJAX提交表单数据实例分析
程序员文章站
2023-11-09 19:30:10
本文实例讲述了ajax提交表单数据的方法。分享给大家供大家参考。具体如下:
var tiny={};
tiny.ajax = function() {...
本文实例讲述了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"); }
希望本文所述对大家的ajax程序设计有所帮助。
上一篇: C#实现排序的代码详解
下一篇: 什么是分组交换网