我已经使用ajax将数据发送到php页面然后取回一些东西,但我不确定如何确定具体发送回来的。我理解这里的大部分领域都有,但我也有一些问题。
我目前的代码如下:
$.ajax({
url: "search.php",
type: "post",
dataType: "json",
data: {partNumber: q , newType:newType},
success: function(data) {
console.log(data);
}
});
我不能完全理解的一点是success:
行的工作原理。当我说success: function(data)
时,我的理解是我说成功(某事?我不确定),返回到此ajax函数的信息将被称为data
,"然后在括号内,我选择console.log
data
。
如果我在这个假设中错了,请纠正我。
最终,我的php页面将完成大量工作并返回包含数据的数组。如果我的PHP代码的最后一行是:
$myArray = array("bob","dan","carl","mike");
如何选择将返回给ajax? php页面运行正常,但是现在我的console.log(data)
代码行没有返回任何内容。
答案 0 :(得分:4)
你不应该从你的ajax调用的php页面中return
任何东西,你应该echo
它(即把它写到响应中)。
echo json_encode($myArray);
如果您回复的不是JSon,那么请取出dataType: "json"
。 success
功能意味着请求成功,即从状态为200的服务器收到响应。还有一种error
方法,当您没有获得时,您可以使用该方法成功回应。
success: function(data) {
console.log(data);
},
error: function(data) {
console.log("Error: "+data);
}
答案 1 :(得分:1)
1)你的成功"基本上是说什么时候没有发生错误。
这是测试错误
$.ajax({
url: 'search.php',
success: function(){
alert('success');
},
error: function(){
alert('failure');
}
});
2)对于您的"数据"你在php端回应的内容会被返回到
中定义的变量中function(results) {
例如,如果你想返回一个数组,你可能想要返回" echo" JSON
你的数组应该包含一个键和一个值
$myArray = array("key" => "value");
echo json_encode($myArray);
并在jquery端解析返回的json对象。
function(data) {
var obj = jQuery.parseJSON(data);
alert(obj.key);
3)传递JSON对象
var JSONObject= {"partNumber":q, "newType":newType};
var jsonData = JSON.parse( JSONObject );
var request = $.ajax({
url: "search.php",
type: "POST",
data: jsonData,
dataType: "json"
});