Перейти к содержанию
Glinda

NULL при переключении вида grid/list

Рекомендуемые сообщения

День добрый

.

Столкнулся с проблемой, при переключении  grid/list вместо descriptions выводится NULL, причём при перезагрузке страницы всё выводиться корректно. Не подсажите в чём может быть причина?

<div class="product-list">

    <?php foreach ($products as $product) { ?>
    <div>

     <?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="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>

<div class="availability"> <?php echo $product['stock'];?></div>
<div class="quantity"> Кол-во, шт:
          <input type="text" name="quantity" size="2" value="<?php echo $product['minimum']; ?>" id="quantity_<?php echo $product['product_id']; ?>"/>
          <input type="hidden" name="product_id" size="2" value="<?php echo $product['product_id']; ?>" />
</div>

<div class="opisanie"><?php echo $product['description']; ?></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['rating']) { ?>
      <div class="rating"><img src="catalog/view/theme/tribeca/image/stars-<?php echo $product['rating']; ?>.png" alt="<?php echo $product['reviews']; ?>" /></div>
      <?php } ?>

 <div class="manufacturer"><?php echo $text_manufacturer . " " . $product['manufacturer'];?></div>
 <div class="reward"><?php echo $text_reward . " " . $product['reward'];?></div>

      <div class="cart">
<a class="button-new" value="<?php echo $button_cart; ?>" id="button-cart" onclick="addToCart('<?php echo $product['product_id']; ?>',document.getElementById('quantity_<?php echo $product['product_id']; ?>').value);"><span class="depth">Купить</span></a>
      </div>


      <div class="wishlist"><a onclick="addToWishList('<?php echo $product['product_id']; ?>');"><?php echo $button_wishlist; ?></a></div>
      <div class="compare"><a onclick="addToCompare('<?php echo $product['product_id']; ?>');"><?php echo $button_compare; ?></a></div>
    </div>
    <?php } ?>
  </div>
  <div class="pagination"><?php echo $pagination; ?></div>
  <?php } ?>
  <?php if (!$categories && !$products) { ?>
  <div class="content"><?php echo $text_empty; ?></div>
  <div class="buttons">
    <div class="right"><a href="<?php echo $continue; ?>" class="button"><span><?php echo $button_continue; ?></span></a></div>
    <div class="cls"></div>
  </div>

  <?php } ?>
  <?php echo $content_bottom; ?></div>

function display(view) {
	if (view == 'grid') {
		$('.product-list').attr('class', 'product-grid');
		
		$('.product-grid > div').each(function(index, element) {
			html = '';
			html += '<div class="name">' + $(element).find('.name').html() + '</div>';
<!--html += '<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></div>';-->


			var image = $(element).find('.image').html();
			
			if (image != null) {
				html += '<div class="image">' + image + '</div>';
			}
			
			<!--html +=  '<div class="name">' + $(element).find('.name').html() + '</div>';-->

html += '<div class="availability">' + $(element).find('.availability').html() + '</div>';
html +=  '<div class="quantity">' + $(element).find('.quantity').html() + '</div>';

			html += '<div class="description">' + $(element).find('.description').html() + '</div>';
			
			var price = $(element).find('.price').html();
			
			if (price != null) {
				html += '<div class="price">' + price  + '</div>';
			}
			
			var rating = $(element).find('.rating').html();
			
			if (rating != null) {
				html += '<div class="rating">' + rating + '</div>';
			}
						
			html += '<div class="cart">' + $(element).find('.cart').html() + '</div>';
			html += '<div class="wishlist">' + $(element).find('.wishlist').html() + '</div>';
			html += '<div class="compare">' + $(element).find('.compare').html() + '</div>';

html += '<div class="manufacturer">'+ $(element).find('.manufacturer').html()+'</div>';			

			$(element).html(html);
		});	
					
		$('.display').html('<b><?php echo $text_display; ?></b> <a onclick="display(\'list\');"><?php echo $text_list; ?></a> <b>/</b> <?php echo $text_grid; ?>');
		
		$.cookie('display', 'grid');
	} else {

 
		$('.product-grid').attr('class', 'product-list');
		
		$('.product-list > div').each(function(index, element) {
			html  = '<div class="right">';

html += '  <div class="name">' + $(element).find('.name').html() + '</div>';

			
html += ' <div style="height: 120px;border-bottom: 2px solid #57681e;"> <div class="opisanie">' + $(element).find('.opisanie').html() + '</div>';
var price = $(element).find('.price').html();
			
			if (price != null) {
				html += '<div class="price">' + price  + '</div>';
			}


			html += '  <div class="cart">' + $(element).find('.cart').html() + '</div></div>';


html += '  <div class="availability">' + $(element).find('.availability').html() + '</div>';
			
html += '  <div class="description">' + $(element).find('.description').html() + '</div>';

html +=  '<div class="quantity">' + $(element).find('.quantity').html() + '</div>';



			html += '  <div class="wishlist">' + $(element).find('.wishlist').html() + '</div>';
			html += '  <div class="compare">' + $(element).find('.compare').html() + '</div>';

			html += '</div>';			
			
			html += '<div class="left">';
			
			var image = $(element).find('.image').html();
			
			if (image != null) { 
				html += '<div class="image">' + image + '</div>';
			}
		
				
			
			var rating = $(element).find('.rating').html();
			
			if (rating != null) {
				html += '<div class="rating">' + rating + '</div>';
			}

				
			html += '</div>';
		
			
			$(element).html(html);
		});		
		
		$('.display').html('<b><?php echo $text_display; ?></b> <?php echo $text_list; ?> <b>/</b> <a onclick="display(\'grid\');"><?php echo $text_grid; ?></a>');
		
		$.cookie('display', 'list'); 
	}
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В скрипте не увидел отображение list.

Кстати, он у вас так и в работе? - не обрамлен тегами, чтоль?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В скрипте не увидел отображение list.

Кстати, он у вас так и в работе? - не обрамлен тегами, чтоль?

if (view == 'grid')     {  Если grid }
 else { если 'list' }

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тут лучше посмотреть на живой странице.

Быстрее будет ответ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

obmilkoff.net. Лучше зайти в категорию "базовые масла" - переключаемся вид список/сетка

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
if (view == 'grid') {

и дальше поехали. Это js-вывод от ситуации.

Вот такого в виде

if (view == 'list') {

или

else

Я что-то не вижу.

 

И про 

<script></script> 

вы не ответили

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Стандартная болезнь

<div class="opisanie">
    - оказывает на кожу и увлажняющее и смягчающее действия. При длительном использовании кожа станов..</div>
<div class="description"><!--
    - оказывает на кожу и увлажняющее и смягчающее действия. При длительном использовании кожа станов..--></div>

В общем подгоняйте шаблон скрипта под шаблон tpl

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так я и не хочу в description выводить описание, там у меня другая штука прикручена (специально закоментировал), я хочу вывести "opisanie", в эту переменную и записываю что мне необходимо. Проблема в том что вывод происходит только после принудитедбной перезагрузки страницы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

и все-равно обращать внимание на скрипт, который выводит list\grid. Там-же динамически все. Оттого и NaN

html += '<div class="opisanie">' + $(element).find('.opisanie').html() + '</div>';

подобавлять в js

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.