如何正确返回数组ajax调用在php



ajax在PHP下面调用,并期望返回json数组。我想我已经准备好了数据,但不知道如何正确返回它们。

$files = array();
foreach($db2_databaselist as $db) {
    $file = new stdClass();
    $file->data = date('Y-m-d--H:i:s',strtotime($db));
    $file->attr = new stdClass();
    $file->attr->rel = "file";
    $file->attr->timestamp = $db.$type[0];
    $files[] = json_encode($file);
}
   echo "<pre>Output = " . print_r($files,TRUE) . "</pre>";
   echo "<BR><BR><BR>";
   print_r($files, TRUE);

其中print_r($files,TRUE)给了我

Output = Array
(
    [0] => {"data":"2011-08-07--02:30:05","attr":{"rel":"file","timestamp":"20110807023005w"}}
    [1] => {"data":"2011-07-31--02:30:09","attr":{"rel":"file","timestamp":"20110731023009w"}}
    [2] => {"data":"2011-07-24--02:30:09","attr":{"rel":"file","timestamp":"20110724023009w"}}
)

但是print_r($files,TRUE)什么也不返回。

如何让php返回

[
 {"data":"2011-08-07--02:30:05","attr":{"rel":"file","timestamp":"20110807023005w"}},
 {"data":"2011-07-31--02:30:09","attr":{"rel":"file","timestamp":"20110731023009w"}},
    [2] => {"data":"2011-07-24--02:30:09","attr":{"rel":"file","timestamp":"20110724023009w"}}
]

你不需要在循环之后进行json编码。需要 implode 。您的数组值已经是JSON字符串,这意味着使用json_encode只会转义字符串!

:

echo '['.implode(',',$files).']';

或!您可以跳过这一行的json_encode:

$files[] = json_encode($file);

而循环的结尾看起来应该是这样的:

    $files[] = $file;
}
$files = json_encode( $files );

您需要使用json_encode php函数

print json_encode($files);

echo json_encode($files)应该足够了

最新更新