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

 更新时间:2016年05月25日 11:49:50   投稿:jingxian  
下面小编就为大家带来一篇纯javascript的ajax实现php异步提交表单的简单实例。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

很多时候需要异步提交表单,当表单太多是时候,一个个getElementById变得很不实际

当然,jquery可以实现异步提交表单,jquery.form.js这个库貌似也挺流行

只是有时候并不想使用额外的库,所以就琢磨着自己写,用纯js来实现异步提交表单

实现如下(本例用POST方式提交,用php作为服务器脚本)

HTM L文件:test

<html>
<head>
  <script type="text/javascript" src="name_form.js"></script>
</head>
<body>
  <form action="process.php" id="ajax_form">
    Username:<input type="text" name="username" id="username"/><br>
    <input type="button" onclick="submitForm('name_form')" value="Submit">
  </form>
  <div id="tip"></div>
</body>
</html>

JS文件:name_form.js

function createXmlHttp() {
  var xmlHttp = null;
   
  try {
    //Firefox, Opera 8.0+, Safari
    xmlHttp = new XMLHttpRequest();
  } catch (e) {
    //IE
    try {
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
   
  return xmlHttp;
}
 
function submitForm(formId) {
  var xmlHttp = createXmlHttp();
  if(!xmlHttp) {
    alert("您的浏览器不支持AJAX!");
    return 0;
  }
  
  var url = 'test.php';
  var postData = "";
  postData = "username=" + document.getElementById('username').value;
  postData += "t=" + Math.random();
  
  xmlHttp.open("POST", url, true);
  xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  xmlHttp.onreadystatechange = function() {
    if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {
      if(xmlHttp.responseText == '1') {
        alert('post successed');
      }
    }
  }
  xmlHttp.send(postData);
}

PHP文件:test.php

<?php
  if(isset($_POST['username']) {
    echo '1';
  }
?>

上面程序的原理是,首先用户用过在test.html文件中输入用户名信息,然后通过name_form.js文件进行ajax实现提交表单,然后在php文件中进行操作,此处只是判断用户名是否被设定,也就是说用户名是否存在,存在则输出1;另外,也可以对数据库进行操作(增,改等),然后判断操作结果,如果结果为真则输出1,在js文件中的xmlHttp.responseText中判断返回的信息,因为只是输出1,所以判断正确,此时弹出提示框,内容是'post successed'。这样就成功实现了用ajax实现php异步提交表单。

注:要保证php文件echo之前没有任何的输出,这样ajax才能准确地获取返回的信息。

以上这篇纯javascript的ajax实现php异步提交表单的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • ECSHOP中实现ajax弹窗登录功能

    ECSHOP中实现ajax弹窗登录功能

    本文主要给大家介绍在ecshop中实现ajax弹窗登录功能,代码简单易懂,非常不错,具有参考借鉴价值,需要的的朋友参考下
    2017-03-03
  • ajax请求之返回数据的顺序问题分析

    ajax请求之返回数据的顺序问题分析

    这篇文章主要介绍了ajax请求之返回数据的顺序问题,结合实例形式分析了ajax请求返回值的排序问题,需要的朋友可以参考下
    2015-12-12
  • Struts2和Ajax数据交互示例详解

    Struts2和Ajax数据交互示例详解

    这篇文章主要给大家介绍了关于Struts2和Ajax数据交互的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-01-01
  • ajax怎么打开新窗口具体如何实现

    ajax怎么打开新窗口具体如何实现

    本文为大家介绍下ajax如何打开新窗口,下面有段代码,需要的朋友可以了解下
    2014-01-01
  • pushState实现Ajax无刷新页面切换

    pushState实现Ajax无刷新页面切换

    这篇文章主要介绍了pushState实现Ajax无刷新页面切换的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • 解决ajax回调函数返回的字符串乱码问题

    解决ajax回调函数返回的字符串乱码问题

    ajax回调函数,返回的字符串乱码问题很是让人痛恨,下面有个不错的解决方法,大家可以参考下
    2014-01-01
  • 通过Ajax方式上传文件使用FormData进行Ajax请求

    通过Ajax方式上传文件使用FormData进行Ajax请求

    这篇文章主要介绍了通过Ajax方式上传文件使用FormData进行Ajax请求的相关资料,需要的朋友可以参考下
    2016-08-08
  • 完美解决ajax跨域请求下parsererror的错误

    完美解决ajax跨域请求下parsererror的错误

    下面小编就为大家带来一篇完美解决ajax跨域请求下parsererror的错误。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • 通过Ajax两种方式讲解Struts2接收数组表单的方法

    通过Ajax两种方式讲解Struts2接收数组表单的方法

    使用struts2表单传值,可以传一个或者是作为一个对象的各个属性传,都非常灵活便捷。但是如果我们需要传一个数组并希望struts正确接收,该怎么处理呢?接下来,通过本文给大家介绍通过Ajax两种方式讲解Struts2接收数组表单的方法,需要的朋友可以参考下
    2015-10-10
  • js跨域调用WebService的简单实例

    js跨域调用WebService的简单实例

    下面小编就为大家带来一篇js跨域调用WebService的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09

最新评论