【问题标题】:How to pass JSON array correctly?如何正确传递 JSON 数组?
【发布时间】:2009-11-06 00:45:17
【问题描述】:

我正在尝试使用以下内容创建淡入淡出效果...我被告知除了 json 数组的传递之外几乎在那里。目前没有图像显示。

 //generate all the boxes
$.get('images.php',function(data){
  for (var i=0; i < totalBoxes; i++){
      var randomImage = data[Math.floor(Math.random() * data.length)];
      $('<div class="pf-box"><img class="black" src="' + randomImage['black'] + '" /><img class="colour" src="' + randomImage['colour'] + '" /></div>').hide().appendTo('#bg').fadeIn('slow').filter('.colour').css("opacity", 0);
  }
 },'json');

 //add the hover behavior to all the elements
 $('.colour').hover(function() {
   $(this).stop().fadeTo(700, 1);
 },function() {
   $(this).stop().fadeTo(700, 0);
 });

和 images.php

    <?php 
   header('Content-type: application/json');
echo '[  
    {'black' : 'images/random/1.jpg', 'colour' : 'images/random/1-c.jpg'},  
    {'black' : 'images/random/2.jpg', 'colour' : 'images/random/2-c.jpg'}
]';
    ?>

【问题讨论】:

    标签: jquery arrays json


    【解决方案1】:

    您不需要转义 JSON 字符串中的引号吗?否则 php 解释器将无法发送您想要的所有内容,甚至可能会吐出一些错误。

    【讨论】:

    【解决方案2】:

    使用 randomImage.black 代替 randomImage['black']

    【讨论】:

    • 在 JavaScript 中两者没有区别
    • 在 JavaScript 中没有对关联数组的官方支持.. 把这些点回来
    • 没问题,我忘记了“!”告诉我我并没有真正生气.. :) 这是一个参考:hunlock.com/blogs/Mastering_Javascript_Arrays
    • "我不知道我删除了任何积分对不起"别打扰,我认为是 Haboustak 先生
    • 没有问题,迈克,感谢您的帮助...您知道我怎样才能让悬停工作吗?
    【解决方案3】:

    您的回声失败,因为 JSON 输出中的单引号中断了回声。

    用不同的引号将你的字符串括起来,这样你就可以正确地回显:

    <?php
    header('Content-type: application/json'); 
    echo "[
        {'black' : 'images/random/1.jpg', 'colour' : 'images/random/1-c.jpg'},
        {'black' : 'images/random/2.jpg', 'colour' : 'images/random/2-c.jpg'} 
    ]"; 
    ?>
    

    注意使用双引号将回显字符串括起来,而不是您使用的单引号。 (如果字符串内有双引号,则将其反转并在外面使用单引号)。

    【讨论】:

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