Php javascript幻灯片放映数组

Php javascript幻灯片放映数组,php,javascript,arrays,mootools,Php,Javascript,Arrays,Mootools,我用的是幻灯片2http://www.electricprism.com/aeron/slideshow/ 要在我的网站上显示几张图片,问题是图片的数量和位置应该硬编码到javascript代码中 我想使用php文件输出中的数组 并以某种方式将新值分配给var数据,这样文件夹中的所有图像都将显示出来,而无需每次手动更新。 有什么想法吗 <script> window.addEvent('domready', function(){ var

我用的是幻灯片2http://www.electricprism.com/aeron/slideshow/ 要在我的网站上显示几张图片,问题是图片的数量和位置应该硬编码到javascript代码中

我想使用php文件输出中的数组 并以某种方式将新值分配给var数据,这样文件夹中的所有图像都将显示出来,而无需每次手动更新。 有什么想法吗

<script>
        window.addEvent('domready', function(){


            var data = { '5.jpg': { caption: '1' }, '2.jpg': { caption: '2' }, '3.jpg': { caption: '3' }, '4.jpg': { caption: '4' }};

            new Slideshow('overlap', data, { captions: { delay: 1000 }, delay: 3000, height: 300, hu: 'images/', width: 400 });

        });
    </script>

如果您使用PHP,那么您可以很容易地做到这一点

比方说,您拥有将所有文件放入如下数组的逻辑:

$foo = Array("2.jpg" => "2", "3.jpg" => "3");
表示文件名和标题

然后,您可以执行以下操作:

<?php echo json_encode($foo); ?>
另外,请记住,在您的示例中,您实际使用的不是数组,而是对象。这有很大的区别。在输出中,我建议您将获得一个对象数组。您可以这样循环它:

Array.each(data, function(img) {

});
但是由于键是动态的,这会导致迭代困难,因此需要在obj{}中使用Object.each或Object.keys或for var key来获取属性。更好的数据结构是:

$foo = Array(Array("name" => "2.jpg", "caption" => "two"), Array("name" => "3.jpg", "caption" => "three"));
这意味着在js循环中,您可以引用:

Array.each(data, function(img) {
    img.name; // filename
    img.caption; // title    
});
尝试编写一个ajax函数,将数据加载到从requestfetchImages.php返回的JS数组中——假设返回5个图像。如果到达最后一个图像,则调用相同的ajax函数fetchImages.php?start=5-这将返回id大于5的下5个图像,以便将下一个图像槽加载到数组中。
$foo = Array(Array("name" => "2.jpg", "caption" => "two"), Array("name" => "3.jpg", "caption" => "three"));
Array.each(data, function(img) {
    img.name; // filename
    img.caption; // title    
});