下面小编就为大家带来一篇纯javascript的ajax实现php异步提交表单的简单实例。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
很多时候需要异步提交表单,当表单太多是时候,一个个getElementById变得很不实际
当然,jquery可以实现异步提交表单,jquery.form.js这个库貌似也挺流行
只是有时候并不想使用额外的库,所以就琢磨着自己写,用纯js来实现异步提交表单
实现如下(本例用POST方式提交,用php作为服务器脚本)
HTM L文件:test
<html>
<head>
<script type="text/javascript" src="bmFtZV9mb3JtLmpz"></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异步提交表单的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程学习网。
本文标题为:纯javascript的ajax实现php异步提交表单的简单实例
- 关于 html:如何从 css 表中删除边距和填充 2022-09-21
- javascript 判断当前浏览器版本并判断ie版本 2023-08-08
- 1 Vue - 简介 2023-10-08
- ajax实现输入提示效果 2023-02-14
- JS实现左侧菜单工具栏 2022-08-31
- jsPlumb+vue创建字段映射关系 2023-10-08
- 基于CORS实现WebApi Ajax 跨域请求解决方法 2023-02-14
- layui数据表格以及传数据方式 2022-12-13
- 深入浅析AjaxFileUpload实现单个文件的 Ajax 文件上传库 2022-12-15
- vue keep-alive 2023-10-08