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);
?>
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
?>
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);
}
});
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 .......
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.
$(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.