web-dev-qa-db-fra.com

En utilisant AJAX passer variable à PHP et récupérer ceux qui utilisent AJAX bis

Je souhaite transmettre des valeurs à un script PHP afin d'utiliser AJAX pour les transmettre, et dans la même fonction, j'utilise un autre AJAX pour récupérer ces valeurs. 

Le problème est que le second AJAX ne récupère aucune valeur du fichier PHP. Pourquoi est-ce? Comment puis-je stocker la variable transmise au script PHP afin que le second AJAX puisse la récupérer? 

Mon code est le suivant:

CODE AJAX:

$(document).ready(function() {    
    $("#raaagh").click(function(){    
        $.ajax({
            url: 'ajax.php', //This is the current doc
            type: "POST",
            data: ({name: 145}),
            success: function(data){
                console.log(data);
            }
        });  
        $.ajax({
            url:'ajax.php',
            data:"",
            dataType:'json',
            success:function(data1){
                var y1=data1;
                console.log(data1);
            }
        });
    });
});

CODE PHP:

<?php
$userAnswer = $_POST['name'];    
echo json_encode($userAnswer);    
?>
12
jibin dcruz

Utilisez dataType:"json" pour les données json

$.ajax({
     url: 'ajax.php', //This is the current doc
     type: "POST",
     dataType:'json', // add json datatype to get json
     data: ({name: 145}),
     success: function(data){
         console.log(data);
     }
});  

Lire Docs http://api.jquery.com/jQuery.ajax/

Aussi dans PHP 

<?php
  $userAnswer = $_POST['name']; 
  $sql="SELECT * FROM <tablename> where color='".$userAnswer."'" ;
  $result=mysql_query($sql);
  $row=mysql_fetch_array($result);
  // for first row only and suppose table having data
  echo json_encode($row);  // pass array in json_encode  
?>
21
Rohan Kumar

Pas besoin d'utiliser la deuxième fonction ajax, vous pouvez la récupérer en cas de succès dans une fonction. Un autre problème est que vous ne savez pas quand le premier appel ajax est terminé. Ainsi, même si vous utilisez SESSION, il se peut que vous ne l'obteniez pas dans la seconde AJAX appelez.

SO, je recommande d’utiliser un appel AJAX et d’obtenir la valeur avec succès.

exemple: en premier appel ajax

    $.ajax({
        url: 'ajax.php', //This is the current doc
        type: "POST",
        data: ({name: 145}),
        success: function(data){
            console.log(data);
            alert(data);
            //or if the data is JSON
            var jdata = jQuery.parseJSON(data);
        }
    }); 
1
user1646111

vous devez passer des valeurs avec les guillemets simples

$(document).ready(function() {    
    $("#raaagh").click(function(){    
        $.ajax({
            url: 'ajax.php', //This is the current doc
            type: "POST",
            data: ({name: '145'}), //variables should be pass like this
            success: function(data){
                console.log(data);
                           }
        });  
        $.ajax({
    url:'ajax.php',
    data:"",
    dataType:'json',
    success:function(data1){
            var y1=data1;
            console.log(data1);
            }
        });

    });
});

essayez ça peut marcher .......

1
Sathish Kumar D

Dans votre fichier PhP, il y aura une variable appelée $_REQUEST et elle contient un tableau avec toutes les données envoyées de Javascript à PhP en utilisant AJAX.

Essayez ceci: var_dump($_REQUEST); et vérifiez si vous recevez les valeurs. 

1
Juan Martínez
$(document).ready(function() {
    $("#raaagh").click(function() {
        $.ajax({
            url: 'ajax.php', //This is the current doc
            type: "POST",
            data: ({name: 145}),
            success: function(data) {
                console.log(data);
                $.ajax({
                    url:'ajax.php',
                    data: data,
                    dataType:'json',
                    success:function(data1) {
                        var y1=data1;
                        console.log(data1);
                    }
                });
            }
        });
    });
});

Utilisez comme ceci, commencez par faire un appel ajax pour obtenir des données, puis votre fonction php vous renverra le résultat que vous obtiendrez en données et les transmettra au nouvel appel ajax.

1
Aks1357