純javascript的ajax實(shí)現(xiàn)php異步提交表單的簡(jiǎn)單實(shí)例
很多時(shí)候需要異步提交表單,當(dāng)表單太多是時(shí)候,一個(gè)個(gè)getElementById變得很不實(shí)際
當(dāng)然,jquery可以實(shí)現(xiàn)異步提交表單,jquery.form.js這個(gè)庫(kù)貌似也挺流行
只是有時(shí)候并不想使用額外的庫(kù),所以就琢磨著自己寫(xiě),用純js來(lái)實(shí)現(xiàn)異步提交表單
實(shí)現(xiàn)如下(本例用POST方式提交,用php作為服務(wù)器腳本)
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';
}
?>
上面程序的原理是,首先用戶(hù)用過(guò)在test.html文件中輸入用戶(hù)名信息,然后通過(guò)name_form.js文件進(jìn)行ajax實(shí)現(xiàn)提交表單,然后在php文件中進(jìn)行操作,此處只是判斷用戶(hù)名是否被設(shè)定,也就是說(shuō)用戶(hù)名是否存在,存在則輸出1;另外,也可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作(增,改等),然后判斷操作結(jié)果,如果結(jié)果為真則輸出1,在js文件中的xmlHttp.responseText中判斷返回的信息,因?yàn)橹皇禽敵?,所以判斷正確,此時(shí)彈出提示框,內(nèi)容是'post successed'。這樣就成功實(shí)現(xiàn)了用ajax實(shí)現(xiàn)php異步提交表單。
注:要保證php文件echo之前沒(méi)有任何的輸出,這樣ajax才能準(zhǔn)確地獲取返回的信息。
以上這篇純javascript的ajax實(shí)現(xiàn)php異步提交表單的簡(jiǎn)單實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何創(chuàng)建ajax對(duì)象并兼容多個(gè)瀏覽器
這篇文章主要介紹了創(chuàng)建ajax對(duì)象并兼容多個(gè)瀏覽器方法簡(jiǎn)單記錄,在某些情況下還是比較實(shí)用的,需要的朋友可以參考下2014-08-08
layui Ajax請(qǐng)求給下拉框賦值的實(shí)例
今天小編就為大家分享一篇layui Ajax請(qǐng)求給下拉框賦值的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
探討Ajax中有關(guān)readyState(狀態(tài)值)和status(狀態(tài)碼)的問(wèn)題
這篇文章主要介紹了探討Ajax中有關(guān)readyState(狀態(tài)值)和status(狀態(tài)碼)的問(wèn)題的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
仿google搜索提示 SuggestFramework的使用
使用幫助(英文版翻譯而來(lái),可能有錯(cuò)誤,請(qǐng)大家仔細(xì)核對(duì),也希望對(duì)新手理解能有所幫助)2008-09-09
Ajax商品分類(lèi)三級(jí)聯(lián)動(dòng)的簡(jiǎn)單實(shí)現(xiàn)(案例)
下面小編就為大家?guī)?lái)一篇Ajax商品分類(lèi)三級(jí)聯(lián)動(dòng)的簡(jiǎn)單實(shí)現(xiàn)(案例)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08
用ajax傳遞json到前臺(tái)中文出現(xiàn)問(wèn)號(hào)亂碼問(wèn)題的解決辦法
這篇文章主要介紹了用ajax傳遞json到前臺(tái)中文出現(xiàn)問(wèn)號(hào)亂碼問(wèn)題的解決辦法,需要的朋友參考下2017-01-01

