8 votes

AJAX jQuery PHP Valeur de retour

Je suis novice en matière d'AJAX et je suis un peu perdue par ce que PHP renvoie à jQuery. Vous avez donc une fonction AJAX comme celle-ci :

 $.ajax({ url: '/my/site',
     data: {action: 'test'},
     type: 'post',
     success: function(output) {
                  alert(output);
              }
 });

(J'ai pris cela de ajax une autre page StackOverflow).

Mais sur d'autres ressources, la section "succès" ressemblera à ceci :

 success: function(data) {functionfoocommandshere}

Je ne comprends pas ce qui détermine le nom de cette variable. Si le PHP renvoie finalement un tableau :

  echo $myVar;

Comment puis-je obtenir cela à partir de l'AJAX ?

15voto

Gnietschow Points 1399

Un Ajax-Requests récupère un site entier. Vous n'obtiendrez donc pas de données dans les variables, mais le site entier dans le paramètre data. Tous les échos que vous avez fait ensemble seront dans ce paramètre. Si vous voulez récupérer un tableau, vous devez le transformer en json avant.

echo json_encode($myArray);

Vous pouvez ensuite le recevoir via Ajax de la manière suivante

$.ajax({ url: '/my/site',
 data: {action: 'test'},
 dataType: 'json',
 type: 'post',
 success: function(output) {
              alert(output);
          }
 });

7voto

woz Points 7765

Dans votre fichier PHP, utilisez json_encode pour transformer le tableau en un format plus pratique à utiliser en Javascript. Vous auriez donc quelque chose comme :

echo json_encode($myArray);

Ensuite, dans votre JavaScript, le data de la variable success contiendra le JSON. Utilisez la méthode jQuery parseJSON pour le convertir en un objet JavaScript, qui sera ensuite très facile à manipuler. Je ne sais pas ce que contient votre tableau, mais vous pourriez faire quelque chose comme ceci :

$.ajax({ url: '/my/site',
    data: {action: 'test'},
    type: 'post',
    success: function(data) {
        var obj = jQuery.parseJSON(data);
        alert(obj.name[0] === "John");
      }
});

Encore une fois, le data contient tout ce que votre PHP produit, mais JSON est un moyen courant et pratique de transférer des données vers votre JavaScript.

3voto

Samuel Cook Points 8358
<script type="text/javascript">
$.ajax({
    url: '/my/site',
    data: {action: 'test'},
    type: 'post',
    success: function(output) {
        alert(output);
    }
 });
</script>

<?php
$action = $_POST['action'];
echo $action;?>

Toute sortie imprimée/échangée sera renvoyée à la fonction de réussite. C'est pratique lorsque vous voulez remplir un conteneur html avec quelque chose que vous devez exécuter en temps réel.

Une fois que vous aurez compris le principe, vous pourrez également utiliser JSON pour renvoyer des variables avec des valeurs.

-1voto

Teena Thomas Points 5100

Les données renvoyées par la fonction PHP AJAX peuvent être récupérées à partir de l'interface de l'utilisateur. success bloc. Voici le manuel

 $.ajax({ url: '/my/site',
 data: {action: 'test'},
 type: 'post',
 dataType: 'json',
 success: function(output) {
     //output is the data returned from PHP AJAX function in JSON format
     alert(output); 
   }
 });

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X