如何使用AJAX读取PHP文件返回的数组中的所有值?

时间:2009-11-20 10:51:28

标签: php ajax arrays

我正在使用AJAX来获取多维数组,因此将多维数组返回给AJAX,我如何使用AJAX处理数据?我需要读取多维数组中的所有值。我使用以下代码将数组返回给AJAX。

$resultset=array();
while($row=mysql_fetch_assoc($result))
{
    $resultset[]=$row;
}
print_r($resultset);

如何使用AJAX读取PHP文件返回的数组中的所有值?

4 个答案:

答案 0 :(得分:3)

虽然可以在JavaScript中解析print_r的输出,但是当两种语言已存在针对其他数据格式的强大库时,这样做会相当愚蠢。

使用JSON(页面底部的链接会将您带到库中,以便在PHP中生成它并在JavaScript中读取它)。

答案 1 :(得分:2)

是的,您可以使用JSON(JavaScript Object Notation)跨多个平台传输数据。如果您的数据如下:

<?php
  $a = array( );
  $a[ "foo" ] = array( );
  $a[ "bar" ] = array( );
  $a[ "foo" ][ "foo-1" ] = 1;
  $a[ "foo" ][ "foo-2" ] = 2;
  $a[ "foo" ][ "foo-3" ] = 3;
  $a[ "foo" ][ "foo-4" ] = array( "yada", "yada" );
  $a[ "bar" ][ "bar-1" ] = 1;
  $a[ "bar" ][ "bar-2" ] = 2;
  $a[ "bar" ][ "bar-3" ] = 3;
  $a[ "bar" ][ "bar-4" ] = array( "blah", "blah" );
?>

然后它的json_encode($ a)将返回:

{"foo":{"foo-1":1,"foo-2":2,"foo-3":3,"foo-4":["yada","yada"]},"bar":{"bar-1":1,"bar-2":2,"bar-3":3,"bar-4":["blah","blah"]}}

您可以使用JavaScript的eval函数将此字符串转换为对象,并像迭代php数组一样迭代它。

答案 2 :(得分:1)

PHP

echo json_encode($resultset);

JS:

var array = json_decode(input);

默认情况下不支持javascript中的json_decode,您可以使用框架来实现此功能。例如:原型:

var array = input.evalJSON();

答案 3 :(得分:0)

我个人会使用JSON。例如。在php而不是print_r中使用json_encode($ resultset)。在javascript中使用一些支持JSON的lib(jquery / mootools会这样做)来解码JSON。就是这样。