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

最新资讯
“没人看的UP主”被关注,原因让人心酸

“没人看的UP主”被关

墨茶的疑似离开,其实也给了我们一个查漏补缺的机会:我们
海淀区网易大厦涉大兴疫情情况通报

海淀区网易大厦涉大兴

此病例曾作为密切接触者进行集中隔离,海淀区对其在网易
商务部:2020年中国在线教育销售额同比增长逾140%

商务部:2020年中国在线

中国商务部22日公布的最新数据显示,受疫情影响,2020年中
无私桩新能源车主过冬:充电时间延长2倍 续航“里程焦虑”难破

无私桩新能源车主过冬

爱驰汽车相关负责人告诉记者:“以目前电池技术条件,冬季
腾讯获得13亿欧元贷款用以购买环球音乐股份

腾讯获得13亿欧元贷款

据报道,腾讯获得13亿欧元贷款用以购买环球音乐股份。
新交所与淡马锡合作推进资本市场数字资产基础设施建设

新交所与淡马锡合作推

新加坡交易所(“新交所”)22日宣布与淡马锡成立合资公司
最新文章
Ajax实现文件上传功能(Spring MVC)

Ajax实现文件上传功能

这篇文章主要为大家详细介绍了Ajax实现文件上传功能,文
ajax实现提交时校验表单方法

ajax实现提交时校验表

这篇文章主要为大家详细介绍了ajax实现提交时校验表单
react axios 跨域访问一个或多个域名问题

react axios 跨域访问

这篇文章主要介绍了react axios 跨域访问一个或多个域
AJAX实现数据的增删改查操作详解【java后台】

AJAX实现数据的增删改

这篇文章主要介绍了AJAX实现数据的增删改查操作,结合
bootstrap select2 动态从后台Ajax动态获取数据的代码

bootstrap select2 动

这篇文章主要介绍了bootstrap select2 动态从后台Ajax
ThinkPHP5 通过ajax插入图片并实时显示(完整代码)

ThinkPHP5 通过ajax插

这篇文章主要介绍了ThinkPHP5 通过ajax插入图片并实时