PHP:Foreach with" if-else"声明

时间:2016-05-12 09:25:54

标签: php if-statement opencart opencart2.x opencart-module

我正在对运行OpenCart 2.2的在线商店进行一些更改。 在左侧的类别下方浏览时,有2个轮播显示不同的促销活动。我想修改它,在第二个轮播之前有一个描述文本。为此,我应该编辑模板文件。这是我迷路的地方.. 这是模板文件中的代码:

<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>

从我在浏览器检查器中看到,在我的情况下,此代码生成带有ID的2个横幅 - &#34; banner0&#34;和&#34; banner1&#34;。描述文本应位于代码的顶部(之前)。如果我使用一个简单的段落,它会显示两次 - 在每个横幅上方..我应该如何更改它以便它只在第二个横幅(id-banner1)上方显示段落? 我正在考虑if-else声明,但我不确定这是否会起作用......有人可以帮忙吗?我在PHP方面的知识并不多......:S

提前致谢!

祝你好运, Tsvetko Krastev

3 个答案:

答案 0 :(得分: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 :(得分:1)

然后你需要知道这是foreach循环的第二次。因此,更改foreach以包含此类索引,并在this.props.someArray.forEach((item) => { // this === MyComponent within this scope too now! // so you can call this.handleCompanyRemove with no problem })

的循环内添加测试
$i == 1

答案 2 :(得分: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