純javascript的ajax實現(xiàn)php異步提交表單的簡單實例
很多時候需要異步提交表單,當表單太多是時候,一個個getElementById變得很不實際
當然,jquery可以實現(xiàn)異步提交表單,jquery.form.js這個庫貌似也挺流行
只是有時候并不想使用額外的庫,所以就琢磨著自己寫,用純js來實現(xiàn)異步提交表單
實現(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';
}
?>
上面程序的原理是,首先用戶用過在test.html文件中輸入用戶名信息,然后通過name_form.js文件進行ajax實現(xiàn)提交表單,然后在php文件中進行操作,此處只是判斷用戶名是否被設(shè)定,也就是說用戶名是否存在,存在則輸出1;另外,也可以對數(shù)據(jù)庫進行操作(增,改等),然后判斷操作結(jié)果,如果結(jié)果為真則輸出1,在js文件中的xmlHttp.responseText中判斷返回的信息,因為只是輸出1,所以判斷正確,此時彈出提示框,內(nèi)容是'post successed'。這樣就成功實現(xiàn)了用ajax實現(xiàn)php異步提交表單。
注:要保證php文件echo之前沒有任何的輸出,這樣ajax才能準確地獲取返回的信息。
以上這篇純javascript的ajax實現(xiàn)php異步提交表單的簡單實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
ajax中的async屬性值之同步和異步及同步和異步區(qū)別
在Jquery中ajax方法中async用于控制同步和異步,當async值為true時是異步請求,當async值為fase時是同步請求。ajax中async這個屬性,用于控制請求數(shù)據(jù)的方式,默認是true,即默認以異步的方式請求數(shù)據(jù)。2015-10-10
AJAX集天氣\IP\多國語言翻譯MP3(可同步LRC歌詞顯示)\萬年歷查詢通
AJAX集天氣\IP\多國語言翻譯MP3(可同步LRC歌詞顯示)\萬年歷查詢通...2007-09-09
使用AJAX進行WEB應(yīng)用程序開發(fā)的方法
AJAX,一個異步JavaScript和XML的縮略詞,是最近出來的技術(shù)詞語。異步意味著你可以經(jīng)由超文本傳輸協(xié)議(HTTP)向一個服務(wù)器發(fā)出請求并且在等待該響應(yīng)時繼續(xù)處理另外的數(shù)據(jù)。2010-04-04

