Jump to content
Sign in to follow this  
Pascha

[РЕШЕНО] Подсветка различий в характеристиках в сравнении

Recommended Posts

Вопрос в названии темы. 

 

Товары добавляем в сравнение
 

Имеем характеристики товаров.

При совпадении параметров- фон белый
При различии- фон подсвечивается. 

Как реализовать? 

сейчас:
post-20793-0-80950700-1398043097_thumb.png

желаемый результат: 
post-20793-0-39616900-1398043138_thumb.png

Share this post


Link to post
Share on other sites

ea16933bd2108d79635105a21b3a922939cd07e4 :oops:

Share this post


Link to post
Share on other sites

krumax

Спасиб  :wink:

Share this post


Link to post
Share on other sites

Сравнивать можно только товары с равным количество характеристик

 

 

Самый простой способ - отдать на сторону клиента

 

Скриптом пробегать по ячейкам и "светить"

 

например

var char= $('tr td:first-child)
var first = char.next()
 
var second = first.next()
if (first.text() != second.text()) second.css('background','blue');

Share this post


Link to post
Share on other sites

chukcha

ну как видишь из скрина, все получилось (пока посвечивает разницу при сравнении не более 2-х товаров, но лиха беда начало...)

Share this post


Link to post
Share on other sites

Я не вижу чем подсвечивает.

Share this post


Link to post
Share on other sites

Я не вижу чем подсвечивает.

del 

Share this post


Link to post
Share on other sites

ну так это на стороне сервера, а я --- на стороне клиента.

Share this post


Link to post
Share on other sites

ну так это на стороне сервера, а я --- на стороне клиента.

ты что подсвечиваешь? ячейки? а Макс подсветил РАЗНЫЕ ПАРАМЕТРЫ АТРИБУТОВ...разницу чуешь?

Share this post


Link to post
Share on other sites

:)

Я ничего не подсвечиваю...

У тебя на картинке:

слева - атрибуты

справа - параметры

 

я получаю список строк (tr) и пробегаю по всем строкам

Да, я не проверяю на пустую ячейку... но то дело поправимо.

 

Конечно, Это все можно делать и шаблоне, мало того, можно это все раскрашивать разными цветами. А почему бы не добавлять класс, а не стилизовать ячейку?

Share this post


Link to post
Share on other sites

уфффффффффф...... при чем тут раскрашивание ячеек...ты первый пост читал? 
для тех кто сегодня вернулся к нам с бронепоезда, пояснения в картинках: 
post-20793-0-89811300-1398117796_thumb.png

 

товар покупателем добавляется абсолютно в случайном порядке, каким образом узнать что подсвечивать, а что нет из админки, одному Богу известно

 

тут реализована проверка по идентичности текста в строке/ячейке... и при несовпадении автоматом подкрашивается одно из несовпадений, в данном случае в колонке характеристик 2-го товара

Share this post


Link to post
Share on other sites

Как ты говроишь?

Уффффф

 

Ты посмотрел  мой код?

Разве он не подсвечивает именно так как ты спрашивал?

Share this post


Link to post
Share on other sites

тут реализована проверка по идентичности текста в строке/ячейке... и при несовпадении автоматом подкрашивается одно из несовпадений, в данном случае в колонке характеристик 2-го товара

 

подскажите, как реализовать проверку по идентичности текста в ячейке и подсвечивать несовпадения?

Share this post


Link to post
Share on other sites

А приведенные здесь решения не помогают?

Share this post


Link to post
Share on other sites

А приведенные здесь решения не помогают?

Извините за тупость, но, собственно, где здесь приведенные решения? Картинка во втором посте? Или ваш пример скрипта, который я не понял где использовать.

Будьте добры, подскажите или ткните носом

Share this post


Link to post
Share on other sites

А приведенные здесь решения не помогают?

 

может все таки подскажете дилетанту как реализовать проверку по идентичности и подсвечивать несовпадения?

Share this post


Link to post
Share on other sites

Тоже интересует этот вопрос, дефолтный шаблон. Пробовал ваш код вставлять в compare.tpl ничего не выходит. Поясните плиз, куда надо ставить.

Share this post


Link to post
Share on other sites

А кто сказал, что его нужно вставлять один в один?

 

Показана идея, как это сделать.

Не можете сами? Решение вопроса - есть

Share this post


Link to post
Share on other sites

Тоже интересует этот вопрос, дефолтный шаблон. Пробовал ваш код вставлять в compare.tpl ничего не выходит. Поясните плиз, куда надо ставить.

я пошёл путём изобретения велосипеда. получилось вот так. добавь пару товаров в сравнение.

у меня шаблон не дефолтный, так что внимательно посмотри по классам.

вот сам скрипт

<script>
(function($){
  $(document).ready(function(){
    $(".compare-difference").on("click",function(){
      var exc_arr = ["Наименование","Изображение","Цена"];
      $(".compare-info tbody tr").each(function(){
        var f = $(this).children("td").first().text();
        if( $.inArray(f,exc_arr) == -1 && f != "" ){
          var elm = $(this).children("td").map(function(){ return $(this).text(); });
          $(this).children("td").each(function(i){
            if( i != 0 && i != 1 ){
              if( elm[i] != elm[1]){ $(this).addClass("compare-diff"); }
            } 
          });
        }
      });
    });
  });
})(jQuery);
</script>

скрипт вставлял в самом конце перед <?php echo $content_bottom; ?>

классу compare-diff в стилях добавил жёлтый цвет

как-то так

Share this post


Link to post
Share on other sites
On 02.02.2015 at 4:10 PM, Troy said:

я пошёл путём изобретения велосипеда. получилось вот так. добавь пару товаров в сравнение.

у меня шаблон не дефолтный, так что внимательно посмотри по классам.

вот сам скрипт


<script>
(function($){
  $(document).ready(function(){
    $(".compare-difference").on("click",function(){
      var exc_arr = ["Наименование","Изображение","Цена"];
      $(".compare-info tbody tr").each(function(){
        var f = $(this).children("td").first().text();
        if( $.inArray(f,exc_arr) == -1 && f != "" ){
          var elm = $(this).children("td").map(function(){ return $(this).text(); });
          $(this).children("td").each(function(i){
            if( i != 0 && i != 1 ){
              if( elm[i] != elm[1]){ $(this).addClass("compare-diff"); }
            } 
          });
        }
      });
    });
  });
})(jQuery);
</script>

скрипт вставлял в самом конце перед <?php echo $content_bottom; ?>

классу compare-diff в стилях добавил жёлтый цвет

как-то так

Все работает все хорошо, но как подсветить не конкретные параметры а всю строку целиком? и не по клику а автоматом

 

Edited by killcomp

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.