0

这是我的代码,它基本上抓取$banners并显示它们,目前有 2 个,但是,它在第​​一个之后停止并显示 htmldiv id="footerNews...等,然后再继续。这是对的...

    <?php if ($banners) { $i = 1; ?>
<div id="footerBanners">
    <?php foreach ($banners as $banner) { ?>

        <a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" /></a> 

        <?php if ($i == 1) { ?>
            <div id="footerNewsletter">
                <p>Newsletter Sign Up</p>
                <a href="#">Go</a>
                <input type="text" name="email" placeholder="Email address" />
            </div>
            <div id="footerEvents"><a href="<?php echo $events; ?>"><?php echo $text_events; ?></a></div>
        <?php } ?>
    <?php $i++; } ?>
</div>
<?php } ?>

问题是其中的一些变量$banners实际上没有链接。为了解决这个问题,我试图在没有链接的if情况下添加一个不显示的声明。<a href>但是,这会打乱内容的顺序,重要的是我将内容保持在上面的正确顺序^。这是我的尝试。

    <?php if ($banners) { $i = 1; ?>
<div id="footerBanners">
    <?php foreach ($banners as $banner) { ?>
        <?php if ($banner['link'] == '') { ?>
        <img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" /><?php } 
        else { ?>
        <a href="<?php echo $banner['link']; ?>"><img src="<?php echo $banner['image']; ?>" alt="<?php echo $banner['title']; ?>" /></a><?php } ?>
        <?php } ?>
        <?php if ($i == 1) { ?>
            <div id="footerNewsletter">
                <p>Newsletter Sign Up</p>
                <a href="#">Go</a>
                <input type="text" name="email" placeholder="Email address" />
            </div>
            <div id="footerEvents"><a href="<?php echo $events; ?>"><?php echo $text_events; ?></a></div>
        <?php } ?>
    <?php $i++; } ?>
</div>

虽然代码按照它所说的去做,但它不再显示正确的顺序,它显示 1 可链接$banner然后是 html,然后是图像(即第二个$banner没有链接。但是我需要它以相同的方式显示布局作为代码的第一位。这是输出的 html 代码,虽然图像最后出现在网站上。

        <div id="footerBanners">
                            <img src="http://mysite.com/image/data/banner4.jpg" alt="Free Delivery" />                          
                            <a href="http://mysite.com/index.php?route=product/category&amp;path=500_509"><img src="http://mysite.com/image/data/banner5.jpg" alt="Gift Vouchers" /></a>                                        <div id="footerNewsletter">
                <p>Newsletter Sign Up</p>
                <a href="#">Go</a>
                <input type="text" name="email" placeholder="Email address" />
            </div>
            <div id="footerEvents"><a href="http://mysite.com/index.php?route=information/information&amp;information_id=17">EVENTS</a></div>
                    </div>

任何指针?

4

1 回答 1

1
<?php if ($banners) { 
 echo '<div id="footerBanners">';

 foreach ($banners as $banner) {
    if ($banner['link'] == '') { 
        echo '<img src="'.$banner['image'].'" alt="'.$banner['title'].'" />'; 
    }
    else { 
        echo '<a href="'.$banner['link'].'"><img src="'.$banner['image'].'" alt="'.$banner['title'].'" /></a>';
    }
    if ($first_banner != 'displayed') { 

        echo '<div id="footerNewsletter">
                    <p>Newsletter Sign Up</p>
                    <a href="#">Go</a>
                    <input type="text" name="email" placeholder="Email address" />
                </div>
                <div id="footerEvents"><a href="'.$events.'">'.$text_events.'</a></div>';
        $first_banner = 'displayed';
    }
 }
 echo '</div>';    
}
    ?> 
于 2013-01-18T13:23:30.247 回答