我的JavaScript调用PHP脚本,该脚本在磁盘上构建文件夹的二维数组。文件夹名称,文件数和总大小包含在数组中,因此数组如下所示:
folders[$i][0] = $folder_name;
folders[$i][1] = $files_in_folder;
folders[$i][2] = $folder_size;
通过JavaScript进行调用:
$.post('myajax.php', {op : get_folders'},
function(responseTxt, statusTxt, xhr) {
});
让PHP返回数组的最佳方法是什么,以及JavaScript或jQuery的最佳方法是将其恢复为二维数组以便于访问?
谢谢
答案 0 :(得分:1)
JSON是一种很好的方法,因为它是在JavaScript中构建数据的事实标准。 PHP数组可用于生成json_encode()的JSON。
使用JSON API最佳实践,以下是构建JSON响应的方法:
{folders: [
{name: 'Folder name', size: 513, numberOfFiles: 7},
{name: 'Another folder', size: 1214, numberOfFiles: 34},
etc...
]}
myajax.php
中的代码将遵循:
<?php
$folderItems = array();
foreach($folders as $folder) {
array_push($folderItems, array(
"name" => $folder[0],
"numberOfFiles" => $folder[1],
"size" => $folder[2]
));
}
echo json_encode(array("folders" => $folderItems));
?>
用于收集数据的jQuery代码是:
jQuery.getJSON('/myajax.php', function(data){
var folders = data.folders;
// Your code here...
});
答案 1 :(得分:0)
简短回答:
json_decode($string)
和
json_encode($array)
答案 2 :(得分:0)
数组是二维还是一维,使用json_encode
,PHP的内置函数v5.2.0,就在它作为响应发送之前是准备它的最佳方法在JavaScript中易于使用。
这样,Ajax调用就会收到一个JSON对象,这个对象很容易在JavaScript中引用或迭代。