如何确定PHP页面发回AJAX调用的内容
我经常使用ajax将数据发送到php页面并返回一些内容,但我不确定如何确定具体返回的内容。我了解这里的大多数字段的功能,但我也有一些问题 我当前的代码如下所示:如何确定PHP页面发回AJAX调用的内容,php,jquery,ajax,Php,Jquery,Ajax,我经常使用ajax将数据发送到php页面并返回一些内容,但我不确定如何确定具体返回的内容。我了解这里的大多数字段的功能,但我也有一些问题 我当前的代码如下所示: $.ajax({ url: "search.php", type: "post", dataType: "json", data: {partNumber: q , newType:newType},
$.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
即数据
如果我的假设错了,请纠正我
最终,我的php页面将完成大量工作并返回一个包含数据的数组。如果我的php代码的最后一行是:
$myArray = array("bob","dan","carl","mike");
如何选择将其返回到ajax?php页面工作正常,但是现在我的控制台.log(data)
代码行没有返回任何内容。您不应该从ajax调用的php页面返回任何内容,您应该回显它(即将它写入响应)
如果你回音的不是JSon,那么去掉数据类型:“JSon”
。success
功能表示请求成功,即从服务器接收到状态为200的响应。还有一种错误
方法,您可以在无法获得成功响应时使用
success: function(data) {
console.log(data);
},
error: function(data) {
console.log("Error: "+data);
}
您不应该从ajax调用的php页面返回任何内容,您应该回显它(即将它写入响应)
如果你回音的不是JSon,那么去掉数据类型:“JSon”
。success
功能表示请求成功,即从服务器接收到状态为200的响应。还有一种错误
方法,您可以在无法获得成功响应时使用
success: function(data) {
console.log(data);
},
error: function(data) {
console.log("Error: "+data);
}
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"
});
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"
});
解释得很好解释得很好是的,所以我知道success
是从页面的状态代码派生出来的-可能我不清楚,因为我不确定当success函数运行时,该页面上具体返回了什么。现在我有echo$I
,但我想我需要对其进行json_编码。让我试试看它是否有效。那么,返回到ajax调用的是什么呢?返回整个页面“oiutput”,但是如果不是预期的格式,函数将不会按照预期处理数据。这就是为什么要告诉函数格式将是什么be@JohnWu任何写在回复中的内容。因此,无论是什么,也包括PHP块之外的任何HTML,如
等。因此,如果您打算返回JSON,请取出这些内容。好的-我取出数据类型:JSON
,并将PHP修改为JSON\u encode
,现在可以正常工作了-@Dagon-谢谢!这是我一直很难回答的最终问题,所以整个页面都会被发回,但由于我指定了数据类型:“json”
,只有json编码的东西才会被处理?firefox的firebug非常适合调试这类东西,它会向您显示返回到Ajax函数的数据。您应该只输出您需要的\n如果您想要json编码的数据,只需将该数据(而不是该数据)和一些html返回到.yup,因此我了解success
是从页面的状态代码派生出来的-可能我不清楚,因为我不确定当success函数运行时,该页面上具体返回了什么。现在我有echo$I
,但我想我需要对其进行json_编码。让我试试看它是否有效。那么,返回到ajax调用的是什么呢?返回整个页面“oiutput”,但是如果不是预期的格式,函数将不会按照预期处理数据。这就是为什么要告诉函数格式将是什么be@JohnWu任何写在回复中的内容。因此,无论是什么,也包括PHP块之外的任何HTML,如
等。因此,如果您打算返回JSON,请取出这些内容。好的-我取出数据类型:JSON
,并将PHP修改为JSON\u encode
,现在可以正常工作了-@Dagon-谢谢!这是我一直很难回答的最终问题,所以整个页面都会被发回,但由于我指定了数据类型:“json”
,只有json编码的东西才会被处理?firefox的firebug非常适合调试这类东西,它会向您显示返回到Ajax函数的数据。如果您想要json编码的数据,您应该只输出您需要的\想要的,只需返回该数据,而不是该数据和一些html即可。我已将我的php页面修改为echo json\u encode($I)代码>,如果我查看我的开发人员工具,正确的输出在那里,但是我的console.log(数据)代码>仍然没有显示任何内容