php - 访问多个 JSON

标签 php arrays json ajax

在浏览器的控制台中我有这个:enter image description here

这是由该 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);
    }      
}

最佳答案

您似乎将多个 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 验证器。 ;)

关于php - 访问多个 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35798077/

相关文章:

php - 如何根据php中的某些值格式化十进制数

php - 无法使用 PHP PDO 向 MySql 数据库添加值

javascript - 如何在 node.js 中运行 jQuery

php - 编码风格 : Tools to autoformat existing php files automatically?

PHP & MYSQL 返回空白页

Python3、Numpy——矩阵元素的矩阵

c - 字符串、字符数组大小和 calloc --- 是什么导致了这个段错误?

python - 包含完全相反顺序的元素的两个数组的交集

javascript - 如何访问属性 :value pairs in this JSON

Java Hibernate json无限递归与自引用类