web-dev-qa-db-fra.com

Comment obtenir des "données" à partir de requêtes JQuery Ajax

c'est le code que j'ai sur index.html:

<html>
    <head>
        <title>TODO supply a title</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width">
        <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
        <script>
            $.ajax({
                type: "POST",
                url: 'test.php',
                data: "check",
                success: function(data){
                    alert(data);
                }
            });
        </script>
    </head>
    <body>
        <div></div>
    </body>
</html>

Comment programmer test.php pour obtenir les "données" envoyées dans l'API AJAX?

6
Daniyaal Khan

Vous posez une question très fondamentale ici. Vous devriez d’abord suivre quelques tutoriels sur Ajax. Juste pour vous aider un peu (en supposant que vous connaissiez les méthodes d'envoi de données GET et POST), "données" dans les données: "vérifier" est différent de "données" dans la fonction (données). Pour plus de clarté, vous devez les nommer différemment, comme ici:

$.ajax({
     type: "POST",
     url: 'test.php',
     data: "check",
     success: function(response){
         alert(response);
     }
});

Cela indique clairement que l’une des données est celle que vous envoyez au fichier test.php dans les paramètres POST et l’autre la réponse que vous obtenez du fichier test.php après son exécution. En fait, le paramètre de données que vous POST à tester.php doit être un hachage comme ici (je suppose que la clé est "type" ici:

$.ajax({
     type: "POST",
     url: 'test.php',
     data: {"type":"check"},
     success: function(response){
         alert(response);
     }
});

Il peut évidemment y avoir plus de paires clé-valeur dans les données.

En supposant que votre fichier test.php ressemble à ceci:

if(isset($_POST['type'])){
  //Do something
  echo "The type you posted is ".$_POST['type'];
}

Dans ce cas, votre alerte doit indiquer: "Le type que vous avez posté est coché". Cela changera en fonction de la valeur que vous envoyez pour la clé 'type' dans l'appel AJAX.

3
nitigyan

Tu peux essayer comme ça

 $.ajax({
    type: "POST",
    url: 'test.php',
    data: {"data":"check"},
    success: function(data){
        alert(data);//This will alert Success which is sent as the response to the ajax from the server
    }
 });

Et dans test.php

if(isset($_POST['data']) && $_POST['data'] == 'check'){
  //$_POST['data'] contain the value that you sent via ajax
  //Do something
  echo 'Success';
}

Vous pouvez vérifier ceci pour plus

7
웃웃웃웃웃

Si vous voulez traiter plus de données avec jquery ajax. Je préfère le type de données JSON.

Utilisez simplement comme ça.

$.ajax({
    type: "POST",
    url: 'test.php',
    dataType: 'json',
    data: {"data":"check"},
    success: function(data){
        alert(data.value1);
        alert(data.value2);
    }
 });

Dans votre code PHP

if(isset($_POST['data']) && $_POST['data'] == 'check'){
   //Data 1
     $data['value1'] = 'Data 1 Got Successfully';
    //Data 2
     $data['value2'] = 'Data 2 Got Successfully';
     $resonse = json_encode($data);
     echo $response;
}
5
Hoja.M.A

Votre HTML serait 

<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
 <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
 <script>
     $.ajax({
     type: "POST",
     url: 'test.php',
     data: {"myvar":"check",},
     success: function(data){
         alert(data);
     }
     });
 </script>
</head>
<body>
<div></div>
</body>
</html>

Notez que data est un tableau, vous devrez donc passer une variable et sa valeur dans data. Vous pouvez transmettre plusieurs variables dans les données, en les séparant par une virgule.

Et pour choisir les données envoyées par votre ajax, dans test.php:

<?php
if(isset($_POST['myvar']))
{
  $myVariable = $_POST['myvar'];
  echo $myVariable;   //This would output the string passed in ajax, check
}
?>

$ _POST dépend du type utilisé dans l'appel AJAX. Si le type est GET, en php ce serait $ _GET. Une chose simple à la place serait $ _REQUEST, qui indépendamment du fait que l'appel AJAX soit de type GET ou POST.

2
Venkata Krishna
$.ajax({//create an ajax request to load_page.php
    type: "POST",
    url: "test.php",
    data:{"data":"check"},
    success: function(data) {
        if (data) {

           alert(data);
        }
        else {
            alert('Successfully not posted.');
        }
    }
});

Dans test.php

<?php 

if(isset($_POST['data'])){
    echo 'successful';
}
?>
2
Priyank

La sortie du fichier PHP sera envoyée à votre fonction de succès AJAX. 

1
user3111011