如何创建这样的动态结构?HTML + PHP

时间:2016-07-18 07:35:49

标签: php html

我有以下PHP代码,它动态生成内容:

<div id="carousel-example" class="carousel slide hidden-xs" data-ride="carousel">
    <div class="carousel-inner">
        <div class="item active">
            <div class="row">
                <?php foreach ($this->getItems() as $_item): ?>
                    <div class="col-sm-3">
                        <a class="product-image" href="<?php echo $_item->getProductUrl() ?>" title="<?php echo $this->escapeHtml($_item->getName()) ?>"><img src="<?php echo $this->helper('catalog/image')->init($_item, 'thumbnail')->resize(75); ?>" width="75" height="75" alt="<?php echo $this->escapeHtml($_item->getName()) ?>" /></a>
                        <div class="product-details">
                            <h3 class="product-name"><a href="<?php echo $_item->getProductUrl() ?>"><?php echo $this->escapeHtml($_item->getName()) ?></a></h3>
                            <?php echo $this->getPriceHtml($_item, true) ?>
                            <button type="button" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Add to Cart')) ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_item) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button>
                            <ul class="add-to-links">
                                <?php if ($this->helper('wishlist')->isAllow()) : ?>
                                     <li><a href="<?php echo $this->getAddToWishlistUrl($_item) ?>" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
                                <?php endif; ?>
                                <?php if($_compareUrl=$this->getAddToCompareUrl($_item)): ?>
                                    <li><span class="separator">|</span> <a href="<?php echo $_compareUrl ?>" class="link-compare"><?php echo $this->__('Add to Compare') ?></a></li>
                                <?php endif; ?>
                            </ul>
                        </div>
                    </div>
                <?php endforeach; ?>
            </div>
        </div>
    </div>
</div>

以上代码输出以下结构:

<div class="carousel-inner">
    <div class="item active">
        <div class="row">
            <div class="col-sm-3">product1</div>
            <div class="col-sm-3">product2</div>
            <div class="col-sm-3">product3</div>
            <div class="col-sm-3">product4</div>
            <div class="col-sm-3">product5</div>
            <div class="col-sm-3">product6</div>
            .
            .
            .
            etc..
        </div>
    </div>
</div>

我想创建此结构:

 <div class="carousel-inner">
     <div class="item active">
         <div class="row">
             <div class="col-sm-3">product1</div>
             <div class="col-sm-3">product2</div>
             <div class="col-sm-3">product3</div>
             <div class="col-sm-3">product4</div>
         </div>
     </div>

     <div class="item">
         <div class="row">
             <div class="col-sm-3">product1</div>
             <div class="col-sm-3">product2</div>
             <div class="col-sm-3">product3</div>
             <div class="col-sm-3">product4</div>
         </div>
     </div>

     <div class="item">
         <div class="row">
             <div class="col-sm-3">product1</div>
             <div class="col-sm-3">product2</div>
             <div class="col-sm-3">product3</div>
             <div class="col-sm-3">product4</div>
         </div>
     </div>
     .
     .
     .
     etc...
</div>

如何更改动态结构以获得他们想要的内容?

提前致谢!

2 个答案:

答案 0 :(得分:1)

为了创建您想要的结构

  • 您还需要在 <div class="item active"> 循环中添加 foreach ,因为要拥有多个 { {1}} 您希望多次重复

  • 您必须从 items 中移除 active ,因为它将添加到每个 <div class="item active"> ,而我们只希望它在第一个

  • 您必须创建一个检查变量,以便仅将 item 类添加到第一个 active

您的最终代码应该是

item

<强> [编辑]:

考虑到您的评论,如果您希望每个项目中包含四个产品,则需要在 <div id="carousel-example" class="carousel slide hidden-xs" data-ride="carousel"> <div class="carousel-inner"> <?php $i = 0; /* This is the checking variable */ $active; /* This is the variable containing the class 'active' */ foreach ($this->getItems() as $_item): $i++; /* We increment the checking variable in each loop */ $active = ($i === 1) ? "active" : ""; /* We make the check */ ?> <div class="item <?php echo $active;?>"> <!-- The rest of your code as it is --> </div> <?php endforeach; ?> </div> </div> 中使用另一个 loop

你在代码中做错了的关键部分,然而,没有改变,是你没有循环<div class = "row">那就是你的方式只有一个

预览 <div class = "item"> 中的代码应该是:

<div class="item">

答案 1 :(得分:0)

试试这个:

<?xml version="1.0" encoding="utf-8"?><root><return_code><![CDATA[1]]></return_code><error_message><![CDATA[Invalid request.]]></error_message></root>