【问题标题】:getting 2 JSON arrays from php to js从 php 到 js 获取 2 个 JSON 数组
【发布时间】:2015-03-22 04:48:54
【问题描述】:

我通过 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
    });

【问题讨论】:

    标签: javascript php arrays json laravel


    【解决方案1】:

    您返回的不是数组,而是 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);
    

    【讨论】:

    • 在 Js 中我是如何想到数组的?谢谢
    • @user3581731 in js 你的循环是正确的,但要访问每个项目名称只需使用data[i].name(不是data['name'][i])。 BTW 学习如何调试 JS,非常有用。
    【解决方案2】:

    这样使用,

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

    【讨论】:

      猜你喜欢
      • 2012-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-22
      • 2017-03-08
      • 1970-01-01
      相关资源
      最近更新 更多