2011-05-17 70 views
1

我有一個來自Malsup的jQuery Cycle Plugin幻燈片,我根本不知道php。如何將每三個圖像放在一個div中?

我想在我的網站上有一個動態生成的幻燈片。

這裏的標記:

 <div id="slideshow"> 
      <div class="slide"> 
        <a href="image1.jpg"><img src="image1-thumb.jpg" title="image1"/></a> 
        <a href="image2.jpg"><img src="image2-thumb.jpg" title="image2"/></a> 
        <a href="image3.jpg"><img src="image3-thumb.jpg" title="image2"/></a> 
       </div> 
      <div class="slide"> 
        <a href="image4.jpg"><img src="image1-thumb.jpg" title="image1"/></a> 
        <a href="image5.jpg"><img src="image2-thumb.jpg" title="image2"/></a> 
        <a href="image6.jpg"><img src="image3-thumb.jpg" title="image2"/></a> 
       </div> 
     </div> 

的問題是,此搜索是靜態的,而其他5個圖像在PHP動態獲取:

     <?php foreach ($images as $image) { ?> 
         <a href="<?php echo $image['popup']; ?>" title="<?php echo $heading_title; ?>"><img src="<?php echo $image['thumb_tiny']; ?>" alt="<?php echo $heading_title; ?>"/></a> 
         <?php } ?> 

我怎麼能每三幅圖像包裹在一個div與.slide類在PHP的幫助下,所以第一張幻燈片包含一個靜態圖像加上兩個dynamin的,其他幻燈片(無限數量)包含下三個動態獲取圖像?

謝謝你,希望我的描述是不是很難得到:)

回答

3

使用for循環,所以你有一個索引,然後只檢查是否該指數的模3 0做一些事情每三個圖像。

<?php 
for ($i = 0; $i < count($images); $i++) 
{ 
    if ($i % 3 == 0) { // Do something every 3 images } 
    echo "<a href=... // etc 
} 
?> 

因爲你的第一個圖像是靜態的,這是唯一的特殊情況下,可以明確地只檢查這種情況下,並相應地改變價值觀,

if ($i == 2) { // Force a div } 
// You then need to offset the value for the modulo check, 
if ($i > 2 && $i+2 % 3 == 0) { // Do something every 3 images after first 2 } 
+0

與modulos不錯的東西!這可能是最好的解決方案。 – Midas 2011-05-17 17:56:32

0

模運算符是非常方便這種情況:

if (!empty($images)) { 
    echo '<div class="slide">'; 

    for ($i = 0; $i < count($images); $i++) { 
     $image = $images[$i]; 

     // check if we need to start a new div 
     if ($i > 0 && $i % 3 === 0) { 
      echo '</div><div class="slide">'; 
     } 

     echo '<a href="'.$image['popup'].'" title="'.$heading_title.'"><img src="'.$image['thumb_tiny'].'" alt="'.$heading_title.'"/></a>'; 
    } 

    echo '</div>'; 
} 
-1
<div id="slideshow"> 
<? 
$n_images = 3; 
$i = 0; 
while ($i < count($images)) { 
?> 
    <p class="slide"> 
<? 
    if ($i == 0) { 
?> 
     <a href="static.jpg" title="Static"><img src="static_thumb.jpg" alt="Static" /></a> 
<? 
    } 
    for ($j = 0; $j < ($i > 0 ? $n_images : $n_images - 1); $j++) { 
?> 
     <a href="<? echo $images[$i + $j]['popup']?>" title="<? echo $heading_title?>"><img src="<? echo $images[$i + $j]['thumb_tiny']?>" alt="<? echo $heading_title?>" /></a> 
<? 
    } 
?> 
    </p> 
<? 
    $i += $n_images; 
} 
?> 
</div> 
+1

我發現你的PHP短標籤難以閱讀,特別是因爲你使用HTML內的短標籤 – 2011-05-17 17:56:17

+0

可以理解:) – Midas 2011-05-17 17:58:18

相關問題