纯javascript的ajax实现php异步提交表单的简单实例
很多时候需要异步提交表单,当表单太多是时候,一个个getElementById变得很不实际
当然,jquery可以实现异步提交表单,jquery.form.js这个库貌似也挺流行
只是有时候并不想使用额外的库,所以就琢磨着自己写,用纯js来实现异步提交表单
实现如下(本例用POST方式提交,用php作为服务器脚本)
HTML文件:test
<html> <head> <scripttype="text/javascript"src="name_form.js"></script> </head> <body> <formaction="process.php"id="ajax_form"> Username:<inputtype="text"name="username"id="username"/><br> <inputtype="button"onclick="submitForm('name_form')"value="Submit"> </form> <divid="tip"></div> </body> </html>
JS文件:name_form.js
functioncreateXmlHttp(){ varxmlHttp=null; try{ //Firefox,Opera8.0+,Safari xmlHttp=newXMLHttpRequest(); }catch(e){ //IE try{ xmlHttp=newActiveXObject("Msxml2.XMLHTTP"); }catch(e){ xmlHttp=newActiveXObject("Microsoft.XMLHTTP"); } } returnxmlHttp; } functionsubmitForm(formId){ varxmlHttp=createXmlHttp(); if(!xmlHttp){ alert("您的浏览器不支持AJAX!"); return0; } varurl='test.php'; varpostData=""; 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('postsuccessed'); } } } 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,所以判断正确,此时弹出提示框,内容是'postsuccessed'。这样就成功实现了用ajax实现php异步提交表单。
注:要保证php文件echo之前没有任何的输出,这样ajax才能准确地获取返回的信息。
以上这篇纯javascript的ajax实现php异步提交表单的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。