web-dev-qa-db-fra.com

Comment appeler une fonction php depuis ajax?

Je sais comment obtenir un ajax pour aller sur une page php, exécuter une série de choses puis renvoyer des données json. Cependant, est-il possible d'appeler une fonction spécifique qui réside dans une page donnée?

En gros, ce que je veux, c'est réduire le nombre de fichiers dans un projet. Donc, je peux mettre beaucoup de fonctions communes dans une page et ensuite appeler n'importe quelle fonction que je veux pour le moment.

9

Pour demande ajax

1.Include Jquery Library dans votre page Web ..__, par exemple:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

2. Appeler une fonction sur un clic de bouton

<button type="button" onclick="create()">Click Me</button>

3. Pendant que vous cliquez sur le bouton, appelez la fonction de création en javascript.

    <script>
    function create () {
          $.ajax({
            url:"test.php", //the page containing php script
            type: "post", //request type,
            dataType: 'json',
           data: {registration: "success", name: "xyz", email: "[email protected]"}
            success:function(result){

             console.log(result.abc);
           }
         });
     }
<script>

Sur le fichier test.php côté serveur, le paramètre action POST doit être lu et la valeur correspondante, puis effectuez l'action en php et renvoyez au format JSON, par exemple.

$regstration = $_POST['registration'];
$name= $_POST['name'];
$email= $_POST['email'];

if ($registration == "success"){
 // some action goes here under php
 echo json_encode(array("abc"=>'successfuly registered'));
}
13
Nitheesh K P

Vous ne pouvez pas appeler une fonction PHP directement à partir d'un appel AJAX, mais vous pouvez le faire:

<? php 
    function test($data){
        return $data+1;
    }

    if (isset($_POST['callFunc1'])) {
        echo test($_POST['callFunc1']);
    }
?>
<script>
    $.ajax({
        url: 'myFunctions.php',
        type: 'post',
        data: { "callFunc1": "1"},
        success: function(response) { console.log(response); }
    });
</script>
7
Vishnu Bhadoriya

Si je comprends bien, oui, vous pouvez . Mettez toutes vos fonctions dans un fichier php et demandez à ajax de passer en tant que paramètre que vous souhaitez appeler. Ensuite, avec un commutateur ou une structure, exécutez celui que vous voulez.

0
iliaz