【问题标题】:Print PHP array of objects in jQuery [duplicate]在jQuery中打印PHP对象数组[重复]
【发布时间】:2019-02-01 16:46:58
【问题描述】:

下面的数组可以以多种方式返回(元素更多或更少):

array(4) { ["imagen"]=> string(11) "bánner.jpg" ["alt"]=> string(5) "muaka" ["destino"]=> string(7) "op_tipo" ["tipo"]=> string(13) "obj_connected" }

array(3) { ["imagen"]=> string(12) "Logo_RGB.jpg" ["alt"]=> string(7) "test123" ["destino"]=> string(11) "op_list_gen" }

我将它保存在 PHP 中的一个名为:$filtrosBanner; 的变量中。如何在 jQuery 中从中获取值?

我已经将变量保存在 jQuery 中,如下所示:

var opDestino = "<?php echo $filtrosBanner; ?>";

这会返回一个数组,但我不确定如何单独访问每个值。

【问题讨论】:

  • jQuery 使用 Javascript 语法。如果您希望将 PHP 对象作为 Javascript 对象读取,则必须将其编码为它接受的格式。使用json_encode() 你可以做到这一点。
  • 一种简单的方法是将 PHP 数组转换为 JSON,然后使用 JSON.parse 访问元素。

标签: php jquery arrays object


【解决方案1】:

在 PHP 中返回带有 json_encode 的数组。

return json_encode($filtrosBanner);

在 Javascript/jQuery 中使用

var obj = JSON.parse(<?php echo $filtrosBanner?>);

要使用这个对象,请像这样使用它。

obj.propertyname

【讨论】:

    【解决方案2】:

    我会使用json_encode()。这应该为您的var opDestino 创建一个 json 对象。

    像这样:

    var opDestino = <?php echo json_encode($filtrosBanner); ?>;
    

    【讨论】:

    • 我在控制台中得到了意外的标识符,即使它显示了这个var opDestino = "{"imagen":"Logo_RGB.jpg","alt":"test123","destino":"op_list_gen"}";
    • 是的,去掉引号。 js 需要一个有效的 json 字符串。 json 编码输出外部的引号违反了 json 格式。
    【解决方案3】:

    您的任务最简单的方法是:

    var opDestino = <?php echo json_encode($filtrosBanner); ?>;
    

    这样您将对象(或数组)从 PHP 转换为 Javascript 语法。

    【讨论】:

    • 我在控制台中得到了意外的标识符,即使它显示了这个var opDestino = "{"imagen":"Logo_RGB.jpg","alt":"test123","destino":"op_list_gen"}";
    • 请去掉双引号再试一次。 (我会更新答案)
    【解决方案4】:

    您需要使用 PHP 代码将数组内爆为字符串,并将其保存在 php 变量中

    PHP

    $myarray=implode(',',$array);
    

    现在将它放入脚本中的一个变量中,然后使用, 将其分解以获取最终数组

    JQUERY

    var myarray='<?php echo $myarray;?>';
    
    var originalarray=myarray.split(',');
    

    注意:但它只适用于索引数组,不适用于关联数组

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-01
      • 2017-04-12
      • 2014-12-16
      • 1970-01-01
      相关资源
      最近更新 更多