如何将图像链接列表添加到几个动态生成的div(通过PHP)?

时间:2013-01-24 07:12:06

标签: php jquery html dynamic lightbox

我是PHP的新手,我只是想出了如何从多个数组生成内容以填充40个div。它是一个产品库,不同的部分是通过for循环生成的。每次循环,我使用索引不仅从数组中获取信息,而且还为整个div创建一个链接,我想用它作为JQuery Lightbox来显示每个产品的不同视图。我已经能够创建第一个图像的链接。我一直在尝试使用scandir()函数,readdir()函数来获取每个图像的列表,但我没有取得任何成功。图像在文件夹中,_ images / products / 0 / 0.jpg(此文件夹还包含1.jpg,2.jpg等。每次循环,它都会变为_images / products / 1 / 0.jpg - 那里此文件夹中的图像也更多。我需要为每个图像创建一个链接,并将其添加到数组中,以便将不同的Lightbox与每个div链接。

$names = array ('item1', 'item2', 'item3', etc...);
$prices = array ('item1', 'item2', 'item3', etc...);
$number = array ('item1', 'item2', 'item3', etc...);
$serves = array ('item1', 'item2', 'item3', etc...);

$names_size = sizeof($names)

$img_link = "_images/products/"; // used to create the link for $div2

$div1 = "<div id=\"";
$div2 = "\" class=\"products grid_3\"><a href=\"";
$div3 = "\"><h3 class=\"name\">";
$hero_img  = "</h3><img class=\"hero\" src=\"_images/heros/";
$li_price  = "<ul><li>Price: <span class=\"price\">$";
$li_serves = "<li>Serves: <span class=\"serves\">";
$li_num = "<li>KC# <span class=\"kcnum\">";
$li_close  = "</span></li>";
$div4 = "</ul></a></div>";

for ($i = 0; $i < $names_size; $i++) {
    $div = $div1 . $names[$i] . $div2 . $img_link . $i . "/0.jpg" . $div3 .  ucwords($names[$i]) . $hero_img . $i . ".jpg\" alt=\"" . ucwords($names[$i]) . "\" />";
    $div .= $li_price . $prices[$i] . $li_close;
    $div .= $li_kc_num . $kc_no[$i] . $li_close;
    $div .= $li_serves . $serves[$i] . $li_close;
    $div .= $div4;

    echo "{$div}" . "\n";
}

我遇到的问题是,在我回复最终的$ div之前,我需要添加特定产品的链接列表,以便我可以使灯箱适用于每个div。我在回复完成的$ div之前尝试插入代码(下面),但我无法继续使用它。

$gallery_array = array();

$files = scandir($img_link . $i);
    foreach($files as $file) {
        array_push($gallery_array, $file);
}

$gallery_array_size = sizeof($gallery_array);

老实说,我甚至不知道Lightbox是否能像这样工作。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您不必像这样创建$div。您可以将php和HTML代码混合在一起。

您的$gallery_array$files相同。

<?php

$names = array ('item1', 'item2', 'item3');
$prices = array ('item1', 'item2', 'item3');
$kc_no = array ('item1', 'item2', 'item3');
$serves = array ('item1', 'item2', 'item3');

$names_size = sizeof($names);

$img_link = "_images/products/";

for ($i = 0; $i < $names_size; $i++) {
    ?>
    <div id="<?=$names[$i]?>" class="products grid_3">
        <a href="<?=$img_link.$i?>/0.jpg">
            <h3 class="name"><?=ucwords($names[$i])?></h3>
            <img class="hero" src="_images/heros/<?=$i?>.jpg" alt="<?=ucwords($names[$i])?>" />
            <ul>
                <li>Price: <span class="price">$<?=$prices[$i]?></span></li>
                <li>KC# <span class="kcnum"><?=$kc_no[$i]?></span></li>
                <li>Serves: <span class="serves"><?=$serves[$i]?></span></li>
            </ul>
            <span>Gallery</span>
            <ul>
                <?php
                    $files = scandir($img_link . $i);
                    for ($x = 2; $x < sizeof($files); $x++) {
                        echo "<li>".$files[$x]."</li>";
                    }
                ?>
            </ul>
        </a>
    </div>
    <?php
}
?>