如何将php数组返回给ajax调用?

时间:2014-03-20 07:24:32

标签: php ajax

返回 我有一个由ajax调用的php脚本,我在这个文件中对mysql做了一些操作,现在我想把存储在php数组中的结果返回到ajax调用。那么它是如何可能的。

6 个答案:

答案 0 :(得分:2)

你应该使用它。

echo json_encode($array);

答案 1 :(得分:1)

您在php脚本中打印的任何内容都将被“返回”到ajax调用并被success回调捕获。

$.ajax({
  type: "POST",
  url: url,
  data: data,
  success: function(response){
    alert(response); // Will print whatever the php script 'echos' out.
    // or with the php code below as the script you call, you can use:
    if(response.result) {
       alert(response.data); // For the data in 'data' to be printed.
       // Where response.data is your array:
       for(var i=0;i<response.data.length;i++){
         console.log(response.data[i]);
       }
    } else {
      console.log(response.error);
    }
  },
});

编辑: 正如在其他答案中的其他状态一样,json非常适合从php脚本返回到ajax回调,因为JavaScript和PHP都能很好地处理这个问题。

<?php
  // I like to return an associative array, 
  // which in the javascript part of the code can be used as a object.
  // I always include a 'result' boolean value which will let me know on the js
  // side if the request was successfully done or not, and if false, 
  // i usually include a 'error' property with a error message.
  $myreturndata = array("result" => true, "data" => $yourArray, "error" => null);
  header('Content-Type: application/json');
  die(json_encode($myreturndata));

答案 2 :(得分:1)

试试这个:

Use json for that. Read this for more details.

http://php.net/json_encode

JSON is used especially for this purpose.

-

由于

答案 3 :(得分:0)

在你的ajax调用中,你可以像这样指定返回数据类型

$.ajax({
   url : url,
   data : data,
   dataType : 'json',
   success : function(data){
      console.log(data);
   }
})

在你的PHP脚本中你可以像这样打印json编码的字符串

print_r(json_enocde(array()));

答案 4 :(得分:0)

如果您想将PHP Array传递给AJAX,请将其转换为JSON并传递给它。 以下是一个例子

<?php

$arr = array('a' => 10, 'b' => 23, 'c' => 32, 'd' => 42, 'e' => 52);

echo json_encode($arr);

?>

答案 5 :(得分:0)

在其他答案之上的有用示例。将每个数组值拆分为javascript变量。

改进了有用的建议:)

PHP

echo json_encode($array);

成功函数中的jQuery.ajax

// pass each value to variables (this example array looks like this: [100,200,300])
var variableOne = response[0]; // This variable will = 100
var variableTwo = response[1]; // This variable will = 200
var variableThree = response[2]; // This variable will = 300

// Now you can easily use each individual value.
alert(variableOne);