在上述代碼中,JS使用XMLHttpRequest對(duì)象創(chuàng)建了一個(gè)GET請(qǐng)求,文件名為demo.php,最后使用send方法發(fā)送請(qǐng)求。PHP文件會(huì)接收并處理請(qǐng)求,最終通過responseText返回處理結(jié)果。 第二種方法是使用JS調(diào)用PHP函數(shù)。在PHP文件中定義函數(shù),并通過JS調(diào)用執(zhí)行。以下是一個(gè)簡(jiǎn)單的示例:<script>
var xmlhttp;
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
} else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","demo.php",true);
xmlhttp.send();
</script>
在上述代碼中,JS中定義了一個(gè)函數(shù)multiply,在外部調(diào)用時(shí)傳入兩個(gè)參數(shù),運(yùn)行后輸出結(jié)果。PHP中也定義了一個(gè)multiply函數(shù),與JS中的函數(shù)功能相同,最終將結(jié)果通過echo返回給JS。 第三種方法是使用JS生成PHP表單。在JS中創(chuàng)建表單并提交,PHP接收并處理表單數(shù)據(jù)。以下是一個(gè)簡(jiǎn)單的示例:<script>
function multiply(x,y){
var result;
result = x * y;
return result;
}
document.write(multiply(3,4));
</script>
<?php
function multiply($a,$b){
$result = $a * $b;
return $result;
}
echo multiply(5,6);
?>
在上述代碼中,JS使用XMLHttpRequest對(duì)象創(chuàng)建了一個(gè)POST請(qǐng)求,并在send方法中傳遞了表單數(shù)據(jù)。PHP中使用$_POST數(shù)組接收表單數(shù)據(jù),最終返回處理結(jié)果。 以上三種方法都常用于在JS中加入PHP腳本,但也有各自的優(yōu)缺點(diǎn)。使用Ajax可以實(shí)現(xiàn)實(shí)時(shí)更新,但需要后端支持;使用JS調(diào)用PHP函數(shù)可以避免頻繁的網(wǎng)絡(luò)請(qǐng)求,但需要使用共享數(shù)據(jù);使用JS生成PHP表單可以實(shí)現(xiàn)更復(fù)雜的交互,但需要實(shí)現(xiàn)數(shù)據(jù)校驗(yàn)。開發(fā)者應(yīng)根據(jù)實(shí)際需求選擇最合適的方法。<script>
function submitForm(){
var name = document.getElementById("name").value;
var age = document.getElementById("age").value;
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200){
document.getElementById("result").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","demo.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("name="+name+"&age="+age);
}
</script>
<form>
Name:<input type="text" id="name"><br>
Age:<input type="text" id="age"><br>
<input type="button" onclick="submitForm()" value="Submit">
</form>
<?php
$name = $_POST["name"];
$age = $_POST["age"];
echo "My name is " . $name . " and I am " . $age . " years old.";
?>