【问题标题】:Iterating through a PHP array in jQuery?遍历 jQuery 中的 PHP 数组?
【发布时间】:2010-11-15 09:47:37
【问题描述】:

如何在 jQuery 中遍历 PHP 数组?我在 php 中有一个名为 $viewfields 的数组。 如何使用 jQuery 遍历这个数组的每个元素?

编辑 1

<?php foreach ($viewfields as $view): ?>           

if(<?=$view['Attribute']['type'];?>=='text'||<?=$view['Attribute']['type'];?>=='number')
{ 
     $("<input id=input<?=$view['Attribute']['sequence_no'];?> type= 'text' style= 'width:<?=$view['Attribute']['size'];?>px' data-attr=<?=$view['Attribute']['type'];?> ></input><br>").appendTo("#fb_contentarea_col1down21 #<?=$view['Attribute']['sequence_no'];?>");
}

如果我给了

$.each(arrayfromPHP,function(i,elem){

}

如何在 jQuery 中编写 $view['Attribute']['type'] 的代码? 我想 elem['Attribute']['type'] 不起作用?

编辑 2

elem['Attribute']['type'] 确实有效

【问题讨论】:

    标签: php jquery arrays foreach


    【解决方案1】:
    var arrayFromPHP = <?php echo json_encode($viewFields) ?>;
    
    $.each(arrayFromPHP, function (i, elem) {
        // do your stuff
    });
    

    为了更好地理解事物是如何连接在一起的(感谢 Jonathan Sampson):

    <!DOCTYPE html>
    
    <html>
    <head>
    <script type="text/javascript">
    var arrayFromPHP = <?php echo json_encode($viewFields) ?>;
    
    $.each(arrayFromPHP, function (i, elem) {
        // do your stuff
    });
    </script>
    </head>
    <body>
    
    </body>
    </html>
    

    您当然可以将 SCRIPT 标签放在页面中任何您想要的位置,或者您甚至可以从外部脚本中引用 arrayFromPHP,因为 arrayFromPHP 被声明为全局。

    编辑

    给定这个 PHP 数组:

    $viewFields = array(
        'Attributes' => array(
            'type'  => 'foo',
            'label' => 'bar',
        ),
        'Attributes' => array(
            'type'  => 'foo',
            'label' => 'bar',
        ),
    );
    

    使用 jQuery 访问其元素可以这样完成:

    // json_encode() will output:
    // {"Attributes":{"type":"foo","label":"bar"}}
    
    $.each(arrayFromPHP, function (i, elem) {
        alert(elem.type);
        alert(elem.label);
    });
    

    【讨论】:

    • 请注意,PHP 和 jQuery 不是并行编写的。您需要将 PHP 包装在 中,将 jQuery 包装在
    • 在 php for 数组中,我使用数组的各个元素作为 $view['Attribute']['id'] 或 $view['Attribute']['label'],其中我将 $view 分配为 如何访问 .each function() 中的这些元素?
    • @Angeline,你能编辑问题并发布print_r返回的PHP数组的结构吗?只需粘贴print_r($viewFields) 的输出即可。
    • 顺便说一下,这里有一些关于jQuery.each的文档:docs.jquery.com/Utilities/jQuery.each
    • @lonut G.Stan:非常感谢。我得到了答案。但是有一个小变化,它是 elem['Attribute']['type'] 而不是 elem.type。 ;)
    【解决方案2】:

    简单的方法是:

    PHP:

    $an_array=array();
    $an_array[]='Element 1';
    $an_array[]='Element 2';
    $an_array[]='Element 3';
    $array_js=implode(",",$this->js_pagina); //join elements in a string
    

    查询:

    //Converter
    window.array=new String('<?php echo $array_js?>');
    window.array=window.js_pagina.split(",");
    //Iterator
    $.each(window.array, function (i, elem) 
    {
            alert(elem);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-14
      • 2013-05-23
      • 2011-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多