Maison > Article > interface Web > Comment appeler des fonctions PHP à partir de JavaScript en utilisant AJAX ?
Appel de fonctions PHP depuis JavaScript
Lorsque vous travaillez avec PHP et JavaScript, il devient nécessaire d'intégrer des données entre les deux langages. Dans ce contexte, vous pouvez rencontrer le besoin d'appeler des fonctions PHP depuis le code JavaScript.
Pour y parvenir, vous pouvez utiliser une requête AJAX (Asynchronous JavaScript and XML) pour envoyer des données de JavaScript vers un script PHP. Dans votre cas, vous souhaitez appeler des fonctions PHP à partir d'un fichier PHP externe.
// 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);
Cette approche vous permet d'appeler dynamiquement des fonctions PHP depuis JavaScript. La requête AJAX envoie le nom de la fonction souhaitée et ses arguments au script PHP, qui évalue ensuite la fonction et renvoie le résultat au format JSON.
Approche alternative
Si cette méthode n'est pas acceptable, vous pouvez envisager d'utiliser une technique JSONP (JSON with Padding). Cela implique de créer une fonction en JavaScript avec un nom de rappel unique et de la transmettre au script côté serveur. Le script PHP peut ensuite renvoyer des données JSON enveloppées dans un appel de fonction avec le nom de rappel fourni :
echo $_GET['callback'] . '(' . json_encode($result) . ');';
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!