Спрятать блок с условием

Тема в разделе "Как сделать...", создана пользователем Amazko, 28 дек 2015.

  1. Amazko

    Amazko Ловлю сливеров.

    Moderator
    Регистр.:
    4 мар 2012
    Сообщения:
    569
    Симпатии:
    309
    у меня есть такой кусок кода:
    PHP:
          <?php if ($product['price']) { ?>
          <div class="price">

    <?php echo $product['price']; ?>
          </div>
          <?php ?>
    когда я его заменю на:
    PHP:
    <?php if ($product['price']&&$product['price']>0) { ?>
          <div class="price">

    <?php echo $product['price']; ?>
          </div>
          <?php ?>
    таким образом прячу цену если цена равна нулю, но если в одном из товаров будет цена выше нуля, то мне покажет все блоки и с 0 ценами и с нормальной ценой. Как этого избежать чтобы блок цены с нулем прятался, а с ценой оставался независимо от того появится ли у когото цена.

    PHP:
      <div class="product-list">
        <?php foreach ($products as $product) { ?>
        <div class="product">
          <?php if ($product['thumb']) { ?>
          <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /></a></div>
          <?php ?>
          <div class="desc">
          <div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>
          <div class="description"><?php echo $product['description']; ?></div>
          <?php if ($product['price']) { ?>
          <div class="price">
            <?php if (!$product['special']) { ?>
            <?php echo $product['price']; ?>
            <?php } else { ?>
            <span class="price-old"><?php echo $product['price']; ?></span> <span class="price-new"><?php echo $product['special']; ?></span>
            <?php ?>
            <?php if ($product['tax']) { ?>
            <br />
            <span class="price-tax"><?php echo $text_tax?> <?php echo $product['tax']; ?></span>
            <?php ?>
          </div>
          <?php ?>
          <?php if($product['special']){ ?>
         <div class="pavdeal">
        <?php echo $this->getChild('module/pavdeals/pavdeal'$product['product_id']); ?>
        </div>
        <?php }?>
          <div class="rating"><img src="catalog/view/theme/default/image/stars-<?php echo $product['rating']; ?>.png" alt="<?php echo $product['reviews']; ?>" /></div>

          <div class="cart">
            <input type="button" value="<?php echo $button_cart?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />
          </div>
          </div>
          </div>
        <?php ?>
      </div>
     
    Последнее редактирование: 28 дек 2015
  2. Nei

    Nei Nosce te ipsum

    Регистр.:
    5 сен 2009
    Сообщения:
    600
    Симпатии:
    468
    PHP:
    <?php if ($product['price']>0) { ?>
    Так по идее должно работать, если я правильно понял что именно требуется сделать.
     
  3. Genk0

    Genk0 Инквизитор из раздела J!

    Moderator
    Регистр.:
    2 июн 2010
    Сообщения:
    1.627
    Симпатии:
    1.330
    у тебя скорее всего product price выводится вместе с названием валюты, поэтому он не может определять условия с цифрами
    делай типа
    Код:
    if (str_replace(" руб.","",$product['price'])>0) {
    где руб. меняешь на свою валюту, пробел может быть как &nbsp;
     
    Amazko нравится это.
  4. Nei

    Nei Nosce te ipsum

    Регистр.:
    5 сен 2009
    Сообщения:
    600
    Симпатии:
    468
    Genk0, даже если переменная $product['price'] будет равна к примеру "99 рублей", условие if ($product['price']>0) будет корректно отрабатывать.
     
  5. ykpon

    ykpon

    Регистр.:
    8 дек 2012
    Сообщения:
    248
    Симпатии:
    143
    :eek:
    PHP:
    if (intval($product['price'])>0) {
    Не?
     
  6. Relimeyt

    Relimeyt Создатель

    Регистр.:
    3 май 2012
    Сообщения:
    17
    Симпатии:
    4
    По идее этого достаточно:
    Код:
    <?php if ($product['price']&&$product['price']>0) { ?>
    Раз у тебя там идёт цикл, $product['price'] каждый раз получает разные значения, соответственно товары с нулевой ценой тоже не выведутся.

    Если вообще не хочешь показывать бесплатные товары, то ставь эту проверку сразу от начала цикла или в условии цикла