javascript - 自动显示图像文件夹中的图像库

标签 javascript php html

我正在为客户制作图片库,遇到了一些麻烦。 我根本不希望客户必须更改代码,所以我想做的就是做到这一点,这样他们只需将他们想要的任何图像放入文件夹中,代码就会自动将所有内容添加到图库中。

到目前为止,我已经提出了一些解决方案,但对下一步该怎么做感到困惑。

我想使用的图库插件是位于此处的 Magnific Popup: http://dimsemenov.com/plugins/magnific-popup/

问题是我需要将每个图像 url 传递给插件,但我不能对图像 url 进行硬编码,因为我不知道它们是什么。

到目前为止,我所尝试的是基于本指南使用 php 获取所有图像文件的路径: https://daveismyname.com/creating-an-image-gallery-from-a-folder-of-images-automatically-bp

主要问题是我不知道如何将 php url 数组传递给 js 数组。

到目前为止,这是我的 php 代码:

<?php
        $dirname = "images/gallery/";
        $images = scandir($dirname);
        shuffle($images);
        $ignore = Array(".", "..");
        foreach($images as $curimg){
            if(!in_array($curimg, $ignore)) {
                images.push({src: ".$dirname.$curimg"});
            }
        }
    ?>

images 是我之前定义的一个js数组:

 var images = [];

如何将我的 php 数组传递给 js 数组?或者,如果这不是执行此操作的最佳方法,我很乐意学习。

编辑: 到目前为止,这是我的代码,因为有人在问。截至目前,我只是想让图像加载。我可以添加我需要的所有其他东西,并在我开始工作后让它看起来很漂亮。

<!DOCTYPE html>
<html>
<!-- Magnific Popup core CSS file -->
<link rel="stylesheet" href="css/magnific-popup.css">
<head>

    <title></title>
</head>
<body>



    <ul>
        <?php
            $dirname = "images/gallery/";
            $images = scandir($dirname);
            echo json_encode($images);
            /**shuffle($images);
            $ignore = Array(".", "..");
            foreach($images as $curimg){
                if(!in_array($curimg, $ignore)) {
                    images.push({src: ".$dirname.$curimg"});

                }
            }
            */
        ?>


    </ul>

    <script type="text/javascript">
    var imgs = eval('<?php echo json_encode($images) ?>');
    for(var i = 0; i < imgs.length; i++) {

        document.write("<img src=imgs[i]>");
        document.write("imgs[i]");
        console.log(imgs[i]);
    }
    </script>



    <footer>
        <!-- jQuery 1.7.2+ or Zepto.js 1.0+ -->
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>

        <!-- Magnific Popup core JS file -->
        <script src="magnific-popup.js"></script>
    </footer>

</body>
</html>

最佳答案

要将数组从 PHP 传递到 JavaScript,您应该将其转换为 JSON

PHP

<?php
    $dirname = "images/gallery/";
    $images = scandir($dirname);
    shuffle($images);
    $ignore = Array(".", "..");
    $array = array();
    foreach($images as $curimg){
        if(!in_array($curimg, $ignore)) {
            $array[] = $dirname.$curimg;
        }
    }
?>

JavaScript

   <script>    
    var array = <?php echo json_encode($aray) ?>;
    </script>

关于javascript - 自动显示图像文件夹中的图像库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37847255/

相关文章:

javascript - 我怎样才能添加温度。 meteor 发布的字段

javascript - 如何检查是否使用 jQuery 选择了 asp.net 文本框中的文本?

JavaScript 创建新的 "Thread"

PHP字符串拆分问题

javascript - 使用 ng-repeat 重新加载时未设置选择项目的内容

javascript - jQuery 隐藏类

PHP、MySQL 结果中出现 HTML 错误

php - 如何使用 PHP 的 PDO 强制创建新的数据库连接来连接 MySQL

javascript - 如何通过jquery分解对象

html - 为什么浏览器会调用多个网站图标?