首頁 >web前端 >js教程 >如何使用 AJAX 從 JavaScript 呼叫 PHP 函數?

如何使用 AJAX 從 JavaScript 呼叫 PHP 函數?

DDD
DDD原創
2024-11-15 16:54:03379瀏覽

How to Call PHP Functions from JavaScript Using AJAX?

從 JavaScript 呼叫 PHP 函數

使用 PHP 和 JavaScript 時,有必要整合兩種語言之間的資料。在這種情況下,您可能需要從 JavaScript 程式碼中呼叫 PHP 函數。

要實現此目的,您可以利用 AJAX(非同步 JavaScript 和 XML)請求將資料從 JavaScript 傳送到 PHP 腳本。在您的情況下,您希望從外部 PHP 檔案呼叫 PHP 函數。

// PHP Functions
function add($a, $b) { return $a + $b; }
function mult($a, $b) { return $a * $b; }
function divide($a, $b) { return $a / $b; }
// JavaScript AJAX Request
$.ajax({
    type: "POST",
    url: "your_functions_address.php",
    dataType: "json",
    data: { functionname: "add", arguments: [1, 2] },

    success: function (obj, textstatus) {
        if (!("error" in obj)) {
            // Assign returned result to a JavaScript variable
            yourVariable = obj.result;
        } else {
            // Handle error
            console.log(obj.error);
        }
    }
});
// PHP Response Script (your_functions_address.php)
header("Content-Type: application/json");
$aResult = [];
if (!isset($_POST["functionname"])) { $aResult["error"] = "No function name provided!"; }
if (!isset($_POST["arguments"])) { $aResult["error"] = "No arguments provided!"; }
if (!isset($aResult["error"])) {
    switch($_POST['functionname']) {
        case "add":
            if (count($_POST['arguments']) < 2) { $aResult["error"] = "Not enough arguments!"; }
            else { $aResult["result"] = add(floatval($_POST['arguments'][0]), floatval($_POST['arguments'][1])); }
            break;
        default:
            $aResult["error"] = "Function '".$_POST['functionname']."' not found!";
    }
}
echo json_encode($aResult);

此方法可讓您從 JavaScript 動態呼叫 PHP 函數。 AJAX 請求將所需的函數名稱及其參數傳送到 PHP 腳本,然後 PHP 腳本計算函數並以 JSON 格式傳回結果。

替代方法

如果這種方法是不可接受的,您可以考慮使用 JSONP (JSON with Padding) 技術。這涉及到在 JavaScript 中建立具有唯一回呼名稱的函數並將其傳遞給伺服器端腳本。然後,PHP 腳本可以使用提供的回呼名稱傳回封裝在函數呼叫中的 JSON 資料:

echo $_GET['callback'] . '(' . json_encode($result) . ');';

以上是如何使用 AJAX 從 JavaScript 呼叫 PHP 函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn