PHP/Jquery-一个变量,用于存储文件夹中的文件数,然后将其用作循环计数器


PHP/Jquery - Variable that stores the number of files in a folder and then use it as a loop counter

短版本需要帮助创建一个变量,该变量存储文件夹中的文件数,然后将其用作循环计数器。

完整版:我以为我在这里找到了答案,但它对我不起作用。由于我没有足够的声誉,我无法对那个旧帖子发表评论,所以我在这里。

我创建了一个JQuery函数来将图像添加到公文包页面中。它是:

$(document).ready(function() {
   for (i = 1; i <= 9; i++) {
      $('.flex-container').append('<aside class="flex-item"><img src="images/portfolio/' + i + '.jpg" alt="blah blah"></aside>');
   }
});

正如你所看到的,我从9张图片开始。但是,我希望网站在将其他图像添加到"图像/公文包"文件夹时自动更新。(图像按数字顺序命名,如1.jpg、2.jpg等(

基于我链接到上面的线程,我创建了一个名为numberoffiles.php的php文件。该文件包含:

<?php 
   return iterator_count(new DirectoryIterator('../images/portfolio'));
?>

(我的根目录包含这些文件所包含的"图像"answers"脚本"文件夹。(

我将js文件编辑为:

$(document).ready(function() {
    $.get('numberoffiles.php', function(data) {
        var count = data;
    });
    for (i = 1; i <= count; i++) {
        $('.flex-container').append('<aside class="flex-item"><img src="images/portfolio/' + i + '.jpg" alt="blah blah"></aside>');
    }
});

我在$(document).ready(function)内外的$.get代码中都尝试过,但都不起作用。

有些东西告诉我错过了一些非常简单的东西。

这很简单。使用for((进行迭代时,未收到AJAX数据。您可以使用promise或deferred,或者简单地使用带有GET参数的$.ajax函数。

您可以在不更改代码的情况下尝试此操作:

$(document).ready(function() {
    $.get('numberoffiles.php', function(data) {
        var count = data;
        for (i = 1; i <= count; i++) {
             $('.flex-container').append('<aside class="flex-item"><img src="images/portfolio/' + i + '.jpg" alt="blah blah"></aside>');
        }
    });
});

祝你好运。