我想将值传递给PHP脚本,所以我使用AJAX传递它们,并且在同一个函数中我使用另一个AJAX来检索这些值。
问题是第二个AJAX没有从PHP文件中检索任何值。为什么是这样?如何将传递给PHP脚本的变量存储起来,以便第二个AJAX可以检索它?
我的代码如下:
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);
}
});
});
});
PHP代码:
<?php
$userAnswer = $_POST['name'];
echo json_encode($userAnswer);
?>
答案 0 :(得分:21)
将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
?>
答案 1 :(得分:1)
不需要使用第二个ajax函数,你可以在函数内取回成功,这里的另一个问题是你不知道第一个ajax调用何时完成,那么,即使你使用SESSION你可能也不会得到它在第二次AJAX通话中。
所以,我建议使用一个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);
}
});
答案 2 :(得分:1)
$(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函数将返回你将获得数据的结果并将该数据传递给新的ajax调用
答案 3 :(得分:1)
您必须使用单引号传递值
$(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);
}
});
});
});
尝试它可能会起作用.......
答案 4 :(得分:1)
在你的PhP文件中会有一个名为$_REQUEST
的变量,它包含一个数组,其中所有数据都是使用AJAX从Javascript发送到PhP的。
试试这个:var_dump($_REQUEST);
并检查您是否收到了这些值。