下面小编就为大家带来一篇纯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异步提交表单的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持爱安网。

最新资讯
彭蕾为辅 陆奇为佐

彭蕾为辅 陆奇为佐

彭蕾的台词适合彭蕾,但不适合相当多的其他人。
苹果或曾计划发布金色款iPhone X

苹果或曾计划发布金色

据该文件送审的时间推测,苹果本来计划在去年九月份发布
从什么时候起,你玩游戏开始考虑时间成本了?

从什么时候起,你玩游戏

于是,虽然现在游戏已经是消费成本最低的娱乐之一,但玩游
印度创企Milkbasket,靠什么在杂货电商领域脱颖而出

印度创企Milkbasket,靠

当你打开冰箱发现第二天需要喝的牛奶已经没有了或者你
中美贸易战升级,对哪国CPI影响更大?

中美贸易战升级,对哪国

就通胀影响而言,特朗普挑起的中美贸易战如果全面开打,真
美团买摩拜买的是什么?

美团买摩拜买的是什么

美团买的是街头的自行车吗?
最新文章
利用ajax提交form表单到数据库详解(无刷新)

利用ajax提交form表单

这篇文章主要给大家介绍了关于利用ajax提交form表单到
ajax动态赋值echarts的实例(饼图和柱形图)

ajax动态赋值echarts

下面小编就为大家分享一篇ajax动态赋值echarts的实例(
纯javascript的ajax实现php异步提交表单的简单实例

纯javascript的ajax实

下面小编就为大家带来一篇纯javascript的ajax实现php
深入浅析Jsonp解决ajax跨域问题

深入浅析Jsonp解决aja

这篇文章主要介绍了深入浅析Jsonp解决ajax跨域问题的
Ajax跨域问题的解决办法汇总(推荐)

Ajax跨域问题的解决办

本文给大家分享多种方法解决Ajax跨域问题,非常不错具有
完美解决ajax访问遇到Session失效的问题

完美解决ajax访问遇到

下面小编就为大家带来一篇完美解决ajax访问遇到Sessio