这是由这个AJAX返回的:
tol
我想访问它们。尝试了function displayFiles(){
var classElements = document.querySelectorAll("table.folders-list tr.ui-selected td span");
var csrf = $('input[name=_token]').val();
for(var x = 0;x < classElements.length;x++){
var result;
result = classElements[x].innerHTML;
$.ajax({
async: false,
method: 'POST',
dataType: 'json',
url: '../public/getfiles',
data: { 'folder': result, "_token": csrf },
success: function(data) {
}
});
};
}
,但收到了错误。
当有一个JSON我得到console.log(data[0].filename);
,而如果有多个(就像在图片中一样),则不返回任何内容。
这是发送该对象的PHP函数:
TypeError: data[0] is undefined
答案 0 :(得分:3)
好像你把多个JSON字符串放在一起。这又不是有效的JSON。
您的输出看起来像{"x": 1}{"y": 2}
,需要[{"x": 1},{"y": 2}]
。
尝试通过一次调用json_encode()
输出所有数据:
public function getFiles() {
$folder = $_POST['folder'];
$userid = Auth::id();
$query = File::orderBy('created_at', 'desc')->where('userid', $userid)->where('folder', $folder)->get();
// foreach for many result returned by $query
$json = array();
foreach($query as $result){
$arr = array();
$arr['filename'] = $result->filename;
$arr['id'] = $result->fileid;
$arr['size'] = $result->conv_filesize;
$json[] = $arr;
}
echo json_encode($json);
}
您也可以尝试使用JSON验证程序。 ;)