ホームページ >ウェブフロントエンド >jsチュートリアル >AJAX を使用して JavaScript から PHP 関数を呼び出す方法
JavaScript からの PHP 関数の呼び出し
PHP と JavaScript を使用する場合、2 つの言語間のデータを統合する必要があります。このコンテキストでは、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 スクリプトに送信し、スクリプトが関数を評価して結果を JSON 形式で返します。
代替アプローチ
Ifこの方法は受け入れられません。JSONP (JSON with Padding) 技術の使用を検討してください。これには、一意のコールバック名を持つ関数を JavaScript で作成し、それをサーバー側スクリプトに渡すことが含まれます。その後、PHP スクリプトは、指定されたコールバック名を持つ関数呼び出しでラップされた JSON データを返すことができます:
echo $_GET['callback'] . '(' . json_encode($result) . ');';
以上がAJAX を使用して JavaScript から PHP 関数を呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。