【发布时间】:2016-06-18 07:23:21
【问题描述】:
这是由这个 AJAX 返回的:
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) {
}
});
};
}
我想访问它们。尝试console.log(data[0].filename);,但出现错误。
当有一个 JSON 时,我得到 TypeError: data[0] is undefined,而如果有多个 JSON(就像在图片中一样),则不会返回任何内容。
这是发送该对象的 PHP 函数:
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
foreach($query as $result){
$arr = array();
$arr['filename'] = $result->filename;
$arr['id'] = $result->fileid;
$arr['size'] = $result->conv_filesize;
echo json_encode($arr);
}
}
【问题讨论】:
-
你遇到了什么错误?请尽量详细说明您尝试过的代码及其给出的确切信息。
-
@IMSoP 更新了问题
-
你是发送两个不同的 JSONObject 吗?为什么?你可以用那些 JSONObject 发送 JSONArray 对吗?顺便说一句,您在服务器端使用哪种编程语言? PHP?
-
@RafiqueMohammed 是的 PHP,看,又更新了问题
-
您的 PHP 代码在我看来是错误的:它会导致类似于
{"id": 1}{"id": 2}的内容,这是无效的 JSON;您应该将项目放入一个数组中,并在最后调用一次json_encode,这样您就可以得到类似[{"id": 1},{"id": 2}]