2016-05-12 167 views
1

我正在運行OpenCart 2.2的在線商店進行一些更改。 當在左側的類別下方瀏覽時,有2個輪播顯示不同的促銷活動。我想修改它,在第二個輪播之前有一個描述文本。爲此,我應該編輯模板文件。這裏是我迷路.. 這是在模板文件中的代碼:PHP:帶有「if-else」語句的foreach

<div id="banner<?php echo $module; ?>" class="owl-carousel"> 
    <?php foreach ($banners as $banner) { ?> 
    <div class="item"> 
    <?php if ($banner['link']) { ?> 
    <a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" class="img-responsive" /></a> 
    <?php } else { ?> 
    <img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" class="img-responsive" /> 
    <?php } ?> 
    </div> 
    <?php } ?> 
</div> 

從我的瀏覽器檢查,並在我的情況看,該代碼生成2條橫幅的ID - 「banner0」和「banner1」。描述文本應該放在代碼的頂部(之前)。如果我使用一個簡單的段落,它將顯示兩次 - 每個橫幅上方。我應如何更改它,以便它僅在第二個橫幅(id - banner1)上方顯示段落? 我在想if-else語句,但我不確定這是否會起作用......任何人都可以幫忙嗎?我在PHP方面的知識並不多......:S

在此先感謝!

最好的問候, Tsvetko Krastev

回答

1

如果我得到正確的代碼,$module是0/1(如果ID的獲取值banner0banner1),那麼這應該工作:

<div id="banner<?php echo $module; ?>" class="owl-carousel"> 
    <?php foreach ($banners as $banner) { ?> 
     <?php if ($module == "1") { ?> 
      <p>Your description</p> 
     <?php } ?> 
    <div class="item"> 
     <?php if ($banner['link']) { ?> 
      <a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" class="img-responsive" /></a> 
     <?php } else { ?> 
      <img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" class="img-responsive" /> 
     <?php } ?> 
    </div> 
<?php } ?> 
</div> 
1

然後你需要知道這是foreach循環的第二次。因此,改變的foreach包括這樣的指數,並添加一個測試循環中的$i == 1

<div id="banner<?php echo $module; ?>" class="owl-carousel"> 

    <?php //foreach ($banners as $banner) { 
     foreach ($banners as $i => $banner) { 
    ?> 


    <div class="item"> 

    <?php if ($banner['link']) { 
     if ($i == 1) { 
      echo 'YOUR HTML CONTAINING SOME TEXT HERE'; 
     } 
    ?> 
    <a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" class="img-responsive" /></a> 
    <?php } else { ?> 
    <img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" class="img-responsive" /> 
    <?php } ?> 
    </div> 
    <?php } ?> 
</div> 
0

謝謝你這麼多的傢伙!嘗試了兩個版本,他們拋出一個錯誤,但更仔細地尋找到的代碼和兩個您的解決方案,我想出了這個:

<div id="desc<?php echo $module; ?>"> 
    <?php if ($module == 1) { ?> 
     <p>Description</p> 
    <?php } ?> 
<div id="banner<?php echo $module; ?>" class="owl-carousel"> 
    <?php foreach ($banners as $banner) { ?> 
    <div class="item"> 
    <?php if ($banner['link']) { ?> 
    <a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" class="img-responsive" /></a> 
    <?php } else { ?> 
    <img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" class="img-responsive" /> 
    <?php } ?> 
    </div> 
    <?php } ?> 
</div> 
</div> 

非常感謝你再次多的快速反應和幫助! :):3

此致敬禮, Tsvetko Krastev