• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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");
    }
    
    

    希望本文所述对大家的Ajax程序设计有所帮助。

    您可能感兴趣的文章:
    • 防止ajax重复请求的方法(GET和POST)
    • AJAX避免用户重复提交请求实现方案
    • ajax 防止用户反复提交的2种解决方案
    • 防止重复发送Ajax请求的解决方案
    • PHP中如何防止外部恶意提交调用ajax接口
    上一篇:Ajax请求session失效该如何解决
    下一篇:Ajax详解及其案例分析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    AJAX提交表单数据实例分析 AJAX,提交,表单,数据,实例分析,