我试图显示一个图片库页面,其中有不同的选项卡式列表,即从数据库中获取的库名。其中每一个都是用data-list-id映射的
现在每个画廊都有一组特定的图像。清单看上去如下:
全
清单1
清单2
清单3
下面是显示这些列表内容的HTML:
<div class="full-gallery details-area">
<div class="gallery-1 gallery-all">
<a href="img/img1.jpg" data-ngthumb="img/img1.jpg">image1</a>
<a href="img/img1.jpg" data-ngthumb="img/img1.jpg">image1</a>
</div>
</div>同样的实现方式是将gallery-1更改为gallery-2,gallery-3,它将与相应的列表进行映射。
现在我的工作是让它充满活力。我得到了结果,但有一点小问题。
这就是我在PHP中所做的:
<?php
$gallery_index=1;
$id=$SITE['site_settings']->cloud_site_id;
$gal="SELECT gallery_id, gallery_image_url from `cloud_site_gallery_images` where `cloud_site_id`= $id and gallery_image_status=1;";
$res = $DB->query($gal);
uasort($res,'cmp_by_gallery');?>
<?php
$test=0;
$temp=array();
$temp[0]=$res[0]->gallery_id; ?>
<div class="full-gallery details-area">
<?php
foreach($res as $galleryList)
{
if($temp[$test] != $galleryList->gallery_id)
$gallery_index++;
?>
<div class="gallery-<?php echo $gallery_index; ?> gallery-all"> <br>
<a href="<?php echo WWW_GALLERY_IMAGE_PATH.'original/'.$galleryList->gallery_image_url; ?>" rel= "<?php echo $galleryList->gallery_id; ?>" data-ngthumb="<?php echo WWW_GALLERY_IMAGE_PATH.'original/'.$galleryList->gallery_image_url; ?>">image1</a>
<?php
$temp[++$test]=$galleryList->gallery_id;
?>
</div>
<?php
} ?>我得到的结果与HTML中的结果不一样。当$gallery_index为1时,它应该打印gallery-1中的所有图像,然后增加到2。
<div class="gallery-1 gallery-all nanogallery_theme_light nanogallery_thumbnails_label_align_center unselectable">
</div>,这是我应该得到的。这里所有的图像都被合并到这个class=gallery-1中。
但我得到了这样的东西:
<div class="gallery-1 gallery-all nanogallery_theme_light nanogallery_thumbnails_label_align_center"> </div>
<div class="gallery-1 gallery-all nanogallery_theme_light nanogallery_thumbnails_label_align_center"> </div>
在这里,每一幅图像都是不同的div
我找不到确切的问题
编辑:
stdClass Object
(
[gallery_id] => 28
[gallery_image_url] => Hydrangeas+1416289924.jpg
)
stdClass Object ( [gallery_id] => 28 [gallery_image_url] => Main+Qimg+D3344dabee4d48e5ee08eabff738f5dd+1416211112.png ) stdClass Object ( [gallery_id] => 28 [gallery_image_url] => Main+Qimg+A17a77318cc563cb43ae387170c79b75+1416211067.jpg ) stdClass Object ( [gallery_id] => 61 [gallery_image_url] => Img2+1416221089.jpg ) stdClass Object ( [gallery_id] => 61 [gallery_image_url] => Img1+1416221043.jpg ) stdClass Object ( [gallery_id] => 62 [gallery_image_url] => Koala+1416293951.jpg ) stdClass Object ( [gallery_id] => 62 [gallery_image_url] => Chrysanthemum+1416293916.jpg ) stdClass Object ( [gallery_id] => 62 [gallery_image_url] => Desert+1416288139.jpg ) stdClass Object ( [gallery_id] => 62 [gallery_image_url] => Lighthouse+1416293790.jpg ) stdClass Object ( [gallery_id] => 62 [gallery_image_url] => Tulips+1416293867.jpg )发布于 2014-11-18 12:11:17
这是正确的,这段代码将为每个图像创建一个独立的div。您需要将div声明从foreach循环中删除。试试这个:
<?php
$galleries = array();
foreach($res as $galleryImage)
{
$galleries[$galleryImage->gallery_id][] = $galleryImage->->gallery_image_url;
}
foreach($galleries as $galleryId => $galleryImages)
{
$gallery_index++;
?>
<div class="gallery-<?php echo $gallery_index; ?> gallery-all"> <br>
<?php
foreach($galleryImages as $image)
{
?>
<a href="<?php echo WWW_GALLERY_IMAGE_PATH.'original/'.$image; ?>" rel= "<?php echo $galleryId; ?>" data-ngthumb="<?php echo WWW_GALLERY_IMAGE_PATH.'original/'.$image; ?>">image1</a>
<?php
}
?>
</div>
<?php
}
?>https://stackoverflow.com/questions/26993670
复制相似问题