从 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中文网其他相关文章!