Использование AJAX для передачи переменной в PHP и повторного получения тех, кто использует AJAX
Я хочу передать значения PHP script, поэтому я использую AJAX для их передачи, и в той же функции я использую другой AJAX для извлечения этих значений.
Проблема в том, что второй AJAX не извлекает никакого значения из файла PHP. Почему это? Как сохранить переменную, переданную на PHP script, чтобы второй AJAX мог ее получить?
Мой код выглядит следующим образом:
AJAX CODE:
$(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);
}
});
});
});
PHP CODE:
<?php
$userAnswer = $_POST['name'];
echo json_encode($userAnswer);
?>
Ответы
Ответ 1
Используйте dataType:"json"
для 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);
}
});
Читать документы http://api.jquery.com/jQuery.ajax/
Также в 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
?>
Ответ 2
Не нужно использовать вторую функцию ajax, вы можете вернуть ее на успех внутри функции, другая проблема здесь: вы не знаете, когда закончился первый вызов ajax, тогда даже если вы используете SESSION, вы не сможете ее получить в течение второго вызова AJAX.
SO, я рекомендую использовать один вызов AJAX и получить значение с успехом.
Пример : при первом вызове 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);
}
});
Ответ 3
$(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);
}
});
}
});
});
});
Используйте вот так: сначала сделайте ajax-вызов для получения данных, тогда ваша функция php вернет результат, который u получит в данных и передаст эти данные новому вызову ajax
Ответ 4
вам нужно передать значения с одинарными кавычками
$(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);
}
});
});
});
попробуйте, это может сработать.......
Ответ 5
В вашем PhP файле будет переменная с именем $_REQUEST
и она содержит массив со всеми данными, отправляемыми с Javascript на PhP с использованием AJAX.
Попробуйте следующее: var_dump($_REQUEST);
и проверьте, получаете ли вы значения.