在現(xiàn)代互聯(lián)網(wǎng)技術(shù)中,JavaScript和PHP都是前后端不可或缺的兩個元素。JavaScript可以在瀏覽器端進(jìn)行交互效果的實現(xiàn),在我們?nèi)粘J褂玫木W(wǎng)頁中普遍存在;而PHP則是服務(wù)器端的編程語言,處理服務(wù)器端的邏輯,進(jìn)行數(shù)據(jù)庫操作等。本文將介紹JavaScript向PHP傳遞數(shù)據(jù)的方式。
相信做過一些網(wǎng)頁開發(fā)的人都知道,前端向后端傳輸數(shù)據(jù),一般是通過form表單或者ajax方式進(jìn)行的。其中ajax是比較常用的方式,因為它可以使用異步方式向后臺傳遞數(shù)據(jù),無需刷新頁面。下面我們來看一下使用ajax向后端傳遞數(shù)據(jù)的例子:
var xmlhttp; if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); } else { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { //處理后端的返回結(jié)果 } } xmlhttp.open("POST","backend.php",true); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xmlhttp.send("firstname=Bill&lastname=Gates");
代碼中首先創(chuàng)建了一個XMLHttpRequest對象,然后設(shè)置了onreadystatechange函數(shù)。當(dāng)ajax請求狀態(tài)發(fā)生改變時,這個函數(shù)就會被調(diào)用。緊接著,使用open()方法建立連接,設(shè)置請求的方式和后端文件的地址;使用setRequestHeader()方法設(shè)置請求頭;使用send()方法發(fā)送請求數(shù)據(jù)。在這里,我們向后端傳遞的是firstname和lastname兩個參數(shù)。
在后端PHP中,我們可以使用$_POST全局變量來接收前端傳遞來的數(shù)據(jù)。如下代碼所示:
//backend.php $firstname = $_POST['firstname']; $lastname = $_POST['lastname']; //處理邏輯
在PHP中,我們可以根據(jù)發(fā)送過來的參數(shù),進(jìn)行后續(xù)的邏輯處理,比如向數(shù)據(jù)庫中插入數(shù)據(jù)等。下面看一個更加具體的例子。
//html頁面 <!DOCTYPE html> <html> <body> <input type="button" value="提交" onclick="submitInfo()"> </body> <script> function submitInfo() { var xhr=new XMLHttpRequest(); var param="username="+document.getElementById("username").value+"&age="+document.getElementById("age").value+"&sex="+document.getElementById("sex").value; xhr.open("POST","backend.php",true); xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xhr.onreadystatechange=function() { if (xhr.readyState==4 && xhr.status==200) { alert(xhr.responseText); } } xhr.send(param); } </script> </html> //backend.php $username = $_POST["username"]; $age = $_POST["age"]; $sex = $_POST["sex"]; //向數(shù)據(jù)庫中插入數(shù)據(jù)等其他邏輯處理 echo "信息提交成功!";
在這個例子中,我們通過點擊按鈕,調(diào)用submitInfo()函數(shù),使用ajax向后端傳遞了三個參數(shù):用戶名、年齡和性別。PHP中,我們通過接收這三個參數(shù),可以進(jìn)行相關(guān)的數(shù)據(jù)庫操作等邏輯處理,并向前端返回處理結(jié)果。
以上是關(guān)于JavaScript向PHP傳遞數(shù)據(jù)的實現(xiàn)方式,通過ajax的方式,我們可以將前端中的數(shù)據(jù)快速、簡便地傳遞給后端PHP進(jìn)行處理。這種方式也是目前web開發(fā)中常用的手段。