web-dev-qa-db-fra.com

Obtenez une réponse de PHP fichier en utilisant AJAX

Alors voici mon problème, j'utilise AJAX (jQuery) pour envoyer un formulaire à process.php, mais la page doit en fait renvoyer une réponse telle que Apple ou Plum. Je ne sais pas comment prendre la réponse de process.php et la stocker sous forme de 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>

De plus, devrai-je faire écho à la réponse dans process.php dans json? ou le texte simple ira-t-il bien?

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

PS: Comment nommer la demande POST dans le code ci-dessus?

30
user115422

<?php echo 'Apple'; ?> est littéralement tout ce dont vous avez besoin sur le serveur. 

comme pour le côté JS, la sortie du script côté serveur est transmise en tant que paramètre à la fonction de gestionnaire de réussite, de sorte que vous devez

success: function(data) {
   alert(data); // Apple
}
39
Marc B

La bonne pratique consiste à 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
Alex
<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
Ethan

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 en 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
Tucker
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
Pankaj Thorat