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

时间:2015-02-17 20:20:33

标签: php jquery ajax

我已经使用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)代码行没有返回任何内容。

2 个答案:

答案 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"
});