从 php 到 js 获取 2 个 JSON 数组


getting 2 JSON arrays from php to js

我通过JSON从PHP数组返回了两个元素,但是"data.length"不起作用。如何在 JS 中获取数组的大小?如果我把它变成数组中的一个元素( data.name.length ) 返回 STRING 中的元素数。

    for ($i = 0; $i < $result; $i++) {

        $img_name ['id'] = $get_img_id[$i]['id'];
        $img_name ['name'] = $get_img_id[$i]['id'];

    }
     return json_encode($img_name);

.js:

$.ajax({
        url: "upimage",
        dataType: "json",
        type: "POST",
        data: formData,
       success: function(data) { 
        //$.each(data, function(i) {

          $("#all_files").val(data + " ,");
          for ( var i = 0, l = data.length; i < l; i++ ) {

             $(".returns_img").append("<div class='img_ls' id='" + i + "'><img src='/img/" + data['name'][i] + "'><button class='dell_img' id='"+ i +"'>מחק</button><br><button class='add_img' id='"+ i +"'>הוסף לכתבה</button></div>"); 
            }


      }, 
        cache: false,
        contentType: false,
        processData: false
    });

你返回的不是数组,而是来自 php 代码的单个对象,要获得你需要的东西,试试这个:

        $result = array();
        for ($i = 0; $i < $result; $i++) {
            $img_name ['id'] = $get_img_id[$i]['id'];
            $img_name ['name'] = $get_img_id[$i]['id'];
            $result[] = $img_name;
        }
        return json_encode($result);

像这样使用,

var arr = [], len;
for(key in data) {
    arr.push(key);
}
len = arr.length;
console.log(len)