如何确定PHP页面发回AJAX调用的内容

如何确定PHP页面发回AJAX调用的内容,php,jquery,ajax,Php,Jquery,Ajax,我经常使用ajax将数据发送到php页面并返回一些内容,但我不确定如何确定具体返回的内容。我了解这里的大多数字段的功能,但我也有一些问题 我当前的代码如下所示: $.ajax({ url: "search.php", type: "post", dataType: "json", data: {partNumber: q , newType:newType},

我经常使用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
数据

如果我的假设错了,请纠正我

最终,我的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(数据)仍然没有显示任何内容