Maison  >  Article  >  interface Web  >  Comment appeler des fonctions PHP à partir de JavaScript en utilisant AJAX ?

Comment appeler des fonctions PHP à partir de JavaScript en utilisant AJAX ?

DDD
DDDoriginal
2024-11-15 16:54:03312parcourir

How to Call PHP Functions from JavaScript Using 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn