从PHP到jQuery,将多个具有相同名称的变量存储在数组中并使用.each

中间人

我有一个PHP文件将数据发送到外部jQuery,这是一个dropzone,其中上传了多个图像(每个图像内部都有不同的信息)。我建立了一个foreach PHP循环,该循环生成数组(foreach图像),并且每个数组都应在该jQuery中执行相同的功能(删除,更新等)。

如何发送和处理从PHP到jQuery的循环?

我正在尝试使用.each方法,但是我想我错了,因为生成的循环显示针对数组数量重复的相同图像(具有相同信息)!

我的PHP

<?php
        $args = array(
            'order'             => 'ASC',
            'orderby'           => 'post_date',
            'post_type'         => 'attachment',
            'author'            => $current_user->ID,
            'meta_key'          => 'is_portfolio',
            'meta_value'        => '1',
            'numberposts'       => -1,
        );
        $attachments = get_posts($args);
        if ($attachments) 
            {
               foreach ($attachments as $attachment) 
                {
                    $url = $attachment->guid;
                    $imggg = $attachment->post_mime_type; 
                    $url = wp_get_attachment_url($attachment->ID); 
                    $thumb = wp_get_attachment_image_src($attachment->ID, 'thumbportfolio');
                    ?>
                    //here is my jQuery array generated for X number of attachments uploaded
                    var mockFile = { 
                        name: "<?php echo $attachment->post_title ?>", 
                        size: 12345, 
                        serverId: '<?php echo $attachment->ID ?>',
                        post_title : "<?php echo $attachment->post_title ?>",
                        post_desc : "<?php echo $attachment->post_content ?>",
                        thumb : "<?php echo $thumb[0] ?>"
                    };
                    <?php           
                }
            } ?>

我的jQuery where .eachof mockFile(应该使用相关信息和其他内容启动Dropzone Thumb)。

$.each( mockFile, function( index, value ){
        //variables accessing array keys
        var mockThumb = mockFile['thumb'];
        var mockID = mockFile['serverId'];
        var mockTitle = mockFile['post_title'];
        var mockDesc = mockFile['post_desc'];
        //initiate dropzone
        myDropzone.options.addedfile.call(myDropzone, mockFile);
        myDropzone.options.thumbnail.call(myDropzone, mockFile, mockThumb  );
        //Other stuff
        jQuery( "#itemtitle" ).prop( "id","itemtitle-"+mockID);
        jQuery( "#itemtitle-"+mockID ).prop( "value", mockTitle);
        jQuery( "#itemdescription" ).prop( "id","itemdescription-"+mockID );
        jQuery( "#itemdescription-"+mockID ).prop( "value", mockDesc );
        jQuery( "#updateinformations" ).prop( "id","updateinformations-"+mockID );
        change_ids(mockID);
        console.log(mockFile);
    });

结果呢?重复相同的图像。

你能帮助我吗?

中间人

感谢ADyson的宝贵帮助,我将尝试他的解决方案。实际上,我稍后会在搜索和研究jQuery文档时解决问题。假设我有2个相互交互的文件:

  • main.php
  • myscript.js

第一个可以通过一个对象发送多个具有相同名称的变量(这基本上是我的问题)。所以,我宣布一个array循环之前,并使用.push每个$attachment像(main.php)那个地方来存储一切:

var myarray = [];
<?php
        $args = array(
            'order'             => 'ASC',
            'orderby'           => 'post_date',
            'post_type'         => 'attachment',
            'author'            => $current_user->ID,
            'meta_key'          => 'is_portfolio',
            'meta_value'        => '1',
            'numberposts'       => -1,
        );
        $attachments = get_posts($args);
        if ($attachments) 
            {
               foreach ($attachments as $attachment) 
                {
                    $url = $attachment->guid;
                    $imggg = $attachment->post_mime_type; 
                    $url = wp_get_attachment_url($attachment->ID); 
                    $thumb = wp_get_attachment_image_src($attachment->ID, 'thumbportfolio');
                    ?>
                    var mockFile = { 
                        name: "<?php echo $attachment->post_title ?>", 
                        size: 12345, 
                        serverId: '<?php echo $attachment->ID ?>',
                        post_title : "<?php echo $attachment->post_title ?>",
                        post_desc : "<?php echo $attachment->post_content ?>",
                        thumb : "<?php echo $thumb[0] ?>"
                    };
                    myarray.push(mockFile);
                    <?php           
                }
            } ?>

Console.log(myrray)显示多维数组,例如

[{attachment1},{attachment2},{attachment3}]

所以我创建了我的.eachjQuery函数,例如(myscript.js)

$.each( myarray, function( i, el ){
        //blablabla accessing keys and values.
    });

再一次,我不知道这是否是实现它的最佳方法,但是效果很好,我的页面加载速度也比以前快。也许我应该学习有关交换信息的更多有关json的知识,但现在我为自己感到骄傲。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用.each()运行带有变量的函数,其中变量存储在数组中

来自分类Dev

jQuery .each具有动态名称/变量

来自分类Dev

summrise_each()中具有多个变量的多个函数

来自分类Dev

在.each内部使用.each

来自分类Dev

在循环中创建多个具有不同名称的对象以存储在数组列表中

来自分类Dev

将.each(),html()存储在单个变量或数组中以备将来使用

来自分类Dev

将.each(),html()存储在单个变量或数组中以备将来使用

来自分类Dev

将 $.each() 值存储在变量中并使用它

来自分类Dev

$ .each中的jquery变量范围

来自分类Dev

.each jQuery中的多个条件

来自分类Dev

jQuery从$ .each到for循环

来自分类Dev

如何在数据源中解析多个具有相同名称的列?

来自分类Dev

如何在数据源中解析多个具有相同名称的列?

来自分类Dev

除了.each()函数以外,还有没有其他方法可以使用jQuery将输入字段中的信息收集到数组中?

来自分类Dev

除了.each()函数之外,还有没有其他方法可以使用jQuery将输入字段中的信息收集到数组中?

来自分类Dev

如何在数组上使用.each()

来自分类Dev

使用_.each创建数组

来自分类Dev

将 results.each 的输出存储到 ruby on rails 中的数组中

来自分类Dev

具有相同名称的变量的存储位置

来自分类Dev

使用For Each循环在数组中添加字符串

来自分类Dev

SQL:如何将多个具有相同名称的xml节点选择到以逗号分隔的列表中

来自分类Dev

Grails-使用命令对象将多个具有相同名称的请求参数绑定到List

来自分类Dev

jQuery中的$ .each问题

来自分类Dev

jQuery的JavaScript中的.each()

来自分类Dev

JQuery $.each 中的 if 语句

来自分类Dev

在JQuery .each中使用$(this)

来自分类Dev

是否可以创建多个具有相同名称的变量?

来自分类Dev

如何将 .each() 的结果存储到 localStorage 中?

来自分类Dev

JAXB将具有相同名称空间的多个文件绑定到同一包

Related 相关文章

  1. 1

    如何使用.each()运行带有变量的函数,其中变量存储在数组中

  2. 2

    jQuery .each具有动态名称/变量

  3. 3

    summrise_each()中具有多个变量的多个函数

  4. 4

    在.each内部使用.each

  5. 5

    在循环中创建多个具有不同名称的对象以存储在数组列表中

  6. 6

    将.each(),html()存储在单个变量或数组中以备将来使用

  7. 7

    将.each(),html()存储在单个变量或数组中以备将来使用

  8. 8

    将 $.each() 值存储在变量中并使用它

  9. 9

    $ .each中的jquery变量范围

  10. 10

    .each jQuery中的多个条件

  11. 11

    jQuery从$ .each到for循环

  12. 12

    如何在数据源中解析多个具有相同名称的列?

  13. 13

    如何在数据源中解析多个具有相同名称的列?

  14. 14

    除了.each()函数以外,还有没有其他方法可以使用jQuery将输入字段中的信息收集到数组中?

  15. 15

    除了.each()函数之外,还有没有其他方法可以使用jQuery将输入字段中的信息收集到数组中?

  16. 16

    如何在数组上使用.each()

  17. 17

    使用_.each创建数组

  18. 18

    将 results.each 的输出存储到 ruby on rails 中的数组中

  19. 19

    具有相同名称的变量的存储位置

  20. 20

    使用For Each循环在数组中添加字符串

  21. 21

    SQL:如何将多个具有相同名称的xml节点选择到以逗号分隔的列表中

  22. 22

    Grails-使用命令对象将多个具有相同名称的请求参数绑定到List

  23. 23

    jQuery中的$ .each问题

  24. 24

    jQuery的JavaScript中的.each()

  25. 25

    JQuery $.each 中的 if 语句

  26. 26

    在JQuery .each中使用$(this)

  27. 27

    是否可以创建多个具有相同名称的变量?

  28. 28

    如何将 .each() 的结果存储到 localStorage 中?

  29. 29

    JAXB将具有相同名称空间的多个文件绑定到同一包

热门标签

归档