Obtenir la réponse du fichier PHP en utilisant AJAX

Voici donc mon problème, j'utilise AJAX (jQuery) pour poster un formulaire sur process.php mais la page doit en fait faire écho à une réponse telle que apple ou plum. Je ne sais pas comment prendre la réponse de process.php et l'avoir stockée en tant que variable...

Voici le code que j'ai jusqu'à présent:

<script type="text/javascript">
        function returnwasset(){
            alert('return sent');
            $.ajax({
                type: "POST",
                url: "process.php",
                data: somedata;
                success function(){
                    //echo what the server sent back...
                }
            });
        }
    </script>

Dois-je aussi faire écho à la réponse dans process.php dans json? ou va en texte brut bien?

Désolé si cela ressemble à une question stupide, c'est la première fois que je fais quelque chose en tant que tel dans Ajax.

PS: Comment nommer la requête POST dans le code ci-dessus?

30
demandé sur Tha'er M. Al-Ajlouni 2013-02-17 10:05:38

5 réponses

<?php echo 'apple'; ?> est à peu près littéralement tout ce dont vous avez besoin sur le serveur.

En ce qui concerne le côté JS, la sortie du script côté serveur est passée en paramètre à la fonction de gestionnaire de succès, donc vous auriez

success: function(data) {
   alert(data); // apple
}
38
répondu Marc B 2013-02-17 06:07:52

La bonne pratique est d'utiliser comme ceci:

$.ajax({
    type: "POST",
    url: "/ajax/request.html",
    data: {action: 'test'},
    dataType:'JSON', 
    success: function(response){
        console.log(response.blablabla);
        // put on console what server sent back...
    }
});

Et la partie php est:

<?php
    if(isset($_POST['action']) && !empty($_POST['action'])) {
        echo json_encode(array("blablabla"=>$variable));
    }
?>
24
répondu Alex 2013-08-14 23:10:15
<script type="text/javascript">
        function returnwasset(){
            alert('return sent');
            $.ajax({
                type: "POST",
                url: "process.php",
                data: somedata;
                dataType:'text'; //or HTML, JSON, etc.
                success: function(response){
                    alert(response);
                    //echo what the server sent back...
                }
            });
        }
    </script>
15
répondu Ethan 2013-08-08 08:27:33

Dans votre fichier PHP, lorsque vous faites écho à vos données, utilisez json_encode ( http://php.net/manual/en/function.json-encode.php )

Par exemple

<?php
//plum or data...
$output = array("data","plum");

echo json_encode($output);

?>

Dans votre code javascript, lorsque votre ajax est terminé, les données de réponse codées json peuvent être transformées en un tableau js comme ceci:

 $.ajax({
                type: "POST",
                url: "process.php",
                data: somedata;
                success function(json_data){
                    var data_array = $.parseJSON(json_data);

                    //access your data like this:
                    var plum_or_whatever = data_array['output'];.
                    //continue from here...
                }
            });
9
répondu Tucker 2013-02-17 06:10:41
var data="your data";//ex data="id="+id;
      $.ajax({
       method : "POST",
       url : "file name",  //url: "demo.php"
       data : "data",
       success : function(result){
               //set result to div or target 
              //ex $("#divid).html(result)
        }
   });
0
répondu Pankaj Thorat 2016-02-27 07:37:36