`
心动音符
  • 浏览: 336630 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

AJAX实现异步提交表单

阅读更多
目的 : 不刷新网页完成表单提交和动态验证

方法 : 在表单页点击submit后在当前页使用AJAX提交表单数据,通过一个处理表单文件处理后.在当前页做提交后的操作,
ajax.js
var XMLHttp = {
    _objPool: [],
 
    _getInstance: function ()
    {
        for (var i = 0; i > this._objPool.length; i ++)
        {
            if (this._objPool[i].readyState == 0 || this._objPool[i].readyState == 4)
            {
                return this._objPool[i];
            }
        }
 
        // IE5中不支持push方法
        this._objPool[this._objPool.length] = this._createObj();
 
        return this._objPool[this._objPool.length - 1];
    },
 
    _createObj: function ()
    {
        if (window.XMLHttpRequest)
        {
            var objXMLHttp = new XMLHttpRequest();
 
        }
        else
        {
            var MSXML = [’MSXML2.XMLHTTP.5.0′, ‘MSXML2.XMLHTTP.4.0′, ‘MSXML2.XMLHTTP.3.0′, ‘MSXML2.XMLHTTP’, ‘Microsoft.XMLHTTP’];
            for(var n = 0; n < MSXML.length; n ++)
            {
                try
                {
                    var objXMLHttp = new ActiveXObject(MSXML[n]);
                    break;
                }
                catch(e)
                {
                }
            }
         }         
 
        // mozilla某些版本没有readyState属性
        if (objXMLHttp.readyState == null)
        {
            objXMLHttp.readyState = 0;
 
            objXMLHttp.addEventListener(”load”, function ()
                {
                    objXMLHttp.readyState = 4;
 
                    if (typeof objXMLHttp.onreadystatechange == “function”)
                    {
                        objXMLHttp.onreadystatechange();
                    }
                }, false);
        }
 
        return objXMLHttp;
    },
 
    // 发送请求(方法[post,get], 地址, 数据, 回调函数 , 异步)
    sendReq: function (method, url, data, callback , XMLHttpbool)
    {
     if(!XMLHttpbool) XMLHttpbool = true;
        var objXMLHttp = this._getInstance();
 
        with(objXMLHttp)
        {
            try
            {
                // 加随机数防止缓存
                if (url.indexOf(”?”) > 0)
                {
                    url += “&randnum=” + Math.random();
                }
                else
                {
                    url += “?randnum=” + Math.random();
                }
 
                open(method, url, XMLHttpbool);
 
                // 设定请求编码方式
                setRequestHeader(’Content-Type’, ‘application/x-www-form-urlencoded; charset=UTF-8′);
                send(data);
                onreadystatechange = function ()
                {
                    if (objXMLHttp.readyState == 4 && (objXMLHttp.status == 200 || objXMLHttp.status == 304))
                    {
                        callback(objXMLHttp);
                    }
                }
            }
            catch(e)
            {
                alert(e);
            }
        }
    },
 /*
 
* form     表单
 
* url   处理文件名
 
* func 提交后的处理方法
 
*/
  formSubmit : function(form , url , func){
    if(typeof form != ‘object’){
   var form = document.getElementById(form);
    }
 var ele = form.elements;
    var post = new Array();
 
 for(var i = 0 ; i<ele.length ;   i++ ){
    //只考虑了 <input type="text" />  其它的要加些 if ... 
    post[i] = ele[i].value;
 }
 var data = post.join(’&amp;’);
 this.sendReq('post' , url , data , func , false);
  }
};


form.html

<head>
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>form</title>
 
<script type="text/javascript" src=''ajax.js"></script>
 
<script type="text/javascript">
 
function response(XMLHttp){
 
    eval(XMLHttp.responseText);
 
} 
 
function  ajaxSubmit(form){
 
    var url = 'action.php' ; //处理文件
 
    XMLHttp.formSubmit(form , url , response);
 
}
 
</script>
 
</head>
 
<body>
 
<form onsubmit="ajaxSubmit(this);return false;">
 
<input type='text' name='fieldName' />
 
<input type='submit' value='Submit' />
 
</form>
 
</body>
 
</html>


action.php
if(isset($_POST['submit'])){
   if(正确){
      //...........入库.......
     echo 'alert("完成"); location="/'';';
     exit;
  } else{
     echo 'alert("出错");';
     exit;
  }
}else{
   //其它.... 
}
分享到:
评论

相关推荐

    ajaxForm异步提交表单(含图片)

    AjaxForm是jQuery Form Plugin的一个功能,用于实现异步表单提交,特别是处理包含图片在内的复杂数据。本文将深入探讨如何使用ajaxForm进行异步表单提交。 首先,让我们了解什么是Ajax。AJAX(Asynchronous ...

    ajax异步提交表单

    ### AJAX异步提交表单知识点解析 #### 一、AJAX技术概述 AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据交换,AJAX可以...

    使用jQuery.form插件,实现完美的表单异步提交

    在Web开发中,异步表单提交是一种常见需求,它能提供更好的用户体验,因为用户无需等待页面刷新即可完成数据的提交。jQuery.form插件正是为了满足这种需求而设计的,它扩展了jQuery库,使表单异步提交变得更加简单、...

    Ajax 实现异步提交的几个实例

    本篇文章将详细探讨通过Ajax实现异步提交的几个实例,尤其是自动完成功能。 一、Ajax基础 Ajax的核心是JavaScript对象XMLHttpRequest,它允许在后台与服务器进行数据交换,而不影响用户的界面体验。创建一个Ajax...

    Ajax 异步回调,ajax异步提交表单,ajax异步显示

    Ajax存在问题就是在异步情况下无法控制什么时候完成记录显示,本人根据回调方法封装了个类,能够将回调方法用参数方式指定,使ajax调用结束后调用回调方法,吧内容传回。ajaxSubmitToDivCallback(显示内容div,提交...

    ajax实现异步提交,判断用户名是否存在与是否过短

    总的来说,实现Ajax异步提交和用户名验证需要结合前端JavaScript和后端API,通过合理的逻辑设计和交互反馈,可以提供流畅且高效的用户体验。同时,确保兼容不同浏览器,考虑错误处理和安全性也是开发中不可忽视的...

    ajax实现异步通信

    - **表单验证**:在提交表单前,通过Ajax验证用户输入,提供即时反馈。 - **分页加载**:页面滚动到底部时,自动加载下一页内容,无需手动刷新。 - **动态搜索**:输入关键词时,实时显示搜索结果。 - **实时通信...

    异步 提交表单请求

    下面我们将详细探讨异步表单请求的实现原理、步骤以及在Java中的应用。 1. **异步请求的工作原理** 异步请求的核心在于,浏览器不会阻塞其他任务,而是创建一个新的请求并在后台处理。当服务器返回响应时,...

    jquery-form 异步提交表单

    jQuery Form插件极大地简化了异步表单提交的过程,使开发者能够专注于业务逻辑和用户体验。结合SSH框架,可以构建出高效、互动性强的Web应用。在实际项目中,根据需求灵活运用这些工具和技巧,能有效提升网站性能和...

    boa cgi 的ajax表单异步提交

    在这个“boa cgi的ajax表单异步提交”示例中,我们将探讨以下几个关键知识点: 1. ** boa HTTP服务器**:Boa是一个轻量级的HTTP服务器,适合资源有限的嵌入式系统。它支持基本的HTTP功能,如GET和POST请求,以及...

    利用Ajax+Jquery实现异步进度条效果

    "利用Ajax+Jquery实现异步进度条效果"这个主题正是围绕这一目标展开,它涉及到C#后端开发、.NET框架、Ajax技术以及Jquery库的前端应用。下面将详细阐述这些知识点。 首先,C#是一种面向对象的编程语言,广泛应用于...

    异步提交 表格异步提交

    异步提交通过Ajax技术改变了传统表单提交的方式,实现了无刷新页面的数据交换。理解其工作原理并熟练运用,可以极大地提升Web应用的性能和用户满意度。无论是使用原生的XMLHttpRequest,还是借助如jQuery的库,都能...

    asp.net mvc3 表单提交和异步提交

    在这个框架中,表单提交和异步提交是两种重要的用户交互方式。本文将深入探讨这两种方法及其在实际开发中的应用。 首先,我们来看传统的表单提交。在ASP.NET MVC3中,表单提交是基于HTTP协议的POST或GET请求。当你...

    Ajax使用jQuery提交表单 文件

    在这个“Ajax使用jQuery提交表单 文件”中,我们将探讨如何利用jQuery实现Ajax提交表单,从而实现异步数据传输,提高用户体验。 首先,我们需要理解jQuery中的Ajax函数`$.ajax()`。这是一个核心函数,可以进行各种...

    jquery异步提交form表单

    对于开发人员来说,理解`jquery.form.js`的源码可以帮助深入掌握异步表单提交的原理和实现细节。通过查看源码,我们可以看到如何处理表单数据的序列化、如何监听和触发事件,以及如何与服务器进行通信。这对于我们...

    纯javascript的ajax实现php异步提交表单的简单实例

    根据给定文件的内容,本知识点将详细介绍如何使用纯...这个实例展示了如何仅使用原生的JavaScript,不依赖于任何外部库,完成一个简单的异步表单提交。这种方式适用于需要轻量级解决方案或者对依赖项有严格限制的项目。

    Ajax异步提交表单数据的说明及方法实例

    对于一个典型的AJAX异步提交表单的示例,如登录页面的登录操作,我们可以看到以下步骤: 1. 用户填写表单并点击登录按钮。 2. 使用jQuery库监听登录按钮的点击事件。 3. 当按钮被点击时,阻止默认的表单提交行为,...

    Jquery+Ajax实现异步更新

    在"Jquery+Ajax实现异步更新"的场景中,我们通常会监听用户的输入事件,比如在HTML表单中的输入框。当用户输入内容时,我们可以触发一个Ajax请求,将输入的内容发送到服务器,然后服务器处理这些数据并返回相关结果...

    ajax验证并提交表单的两种方法博客源码

    本资源通过ajax实现对提交的form表单的验证,该代码不但有针对property验证,也有针对object验证,还有一个异步获取对象的实例;包含完整的代码和库文件;在myeclipse8.5和apache-tomcat-6.0.30测试通过;访问网址:...

Global site tag (gtag.js) - Google Analytics