我熟悉如何讓ajax進入一個php頁面執行一系列的事情,然後返回json數據。但是可以調用駐留在給定頁面中的特定函數嗎?如何從ajax調用php函數?
基本上我想要的是減少項目中的文件數量。因此,我可以在一個頁面中添加很多常用功能,然後只需調用我想要的功能即可。
我熟悉如何讓ajax進入一個php頁面執行一系列的事情,然後返回json數據。但是可以調用駐留在給定頁面中的特定函數嗎?如何從ajax調用php函數?
基本上我想要的是減少項目中的文件數量。因此,我可以在一個頁面中添加很多常用功能,然後只需調用我想要的功能即可。
對於ajax請求
1.在您的網頁中包含Jquery庫。 爲如:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
2.Call按鈕功能點擊按鈕
<button type="button" onclick="create()">Click Me</button>
3.當點擊,調用javascript中創建功能。
<script>
function create() {
$.ajax({
url:"test.php", //the page containing php script
type: "post", //request type,
dataType: 'json',
data: {registration: "success", name: "xyz", email: "[email protected]"}
success:function(result){
console.log(result.abc);
}
});
}
<script>
在服務器端test.php的文件,動作POST參數應當被理解和相應的值,並做在PHP的動作和JSON格式例如返回
$regstration = $_POST['registration'];
$name= $_POST['name'];
$email= $_POST['email'];
if ($registration == "success"){
// some action goes here under php
echo json_encode(array("abc"=>'successfuly registered'));
}
的結果謝謝,我更喜歡此解決方案。 –
你不能直接從一個AJAX調用調用PHP函數,但是你可以這樣做:
<? php
function test($data){
return $data+1;
}
if (isset($_POST['callFunc1'])) {
echo test($_POST['callFunc1']);
}
?>
<script>
$.ajax({
url: 'myFunctions.php',
type: 'post',
data: { "callFunc1": "1"},
success: function(response) { console.log(response); }
});
</script>
夠公平的。感謝那。思考當我完成這個項目時,我可能會使用框架。 –
請小心使用此方法,因爲響應將包含所有內容,而不僅僅是迴應函數 – RamRaider
如果我理解正確的話,當然可以。 把所有的功能放在一個php文件中,並將ajax傳遞作爲你想要調用的參數。然後用開關或結構,執行你想要的。
是的,你可以。只需在當前網址中爲ajax請求添加一些標誌即可。像你當前的網址?isAjax = 1,並在腳本中檢查該標誌 –
是的,你可以做到這一點。你必須注意參數,以便函數的調用可以相互區分。在PHP中,你可以使用開關的情況下(並非總是需要)基於這些參數來區分函數 –
mvc模式會有幫助,另一種方法是根據url中傳遞的參數調用函數。iF ELSE子句的參數和調用相應的功能 –