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

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

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

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

 

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

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

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

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

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

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

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


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

ea16933bd2108d79635105a21b3a922939cd07e4 :oops:

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


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

krumax

Спасиб  :wink:

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


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

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

 

 

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

 

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

 

например

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

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


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

chukcha

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

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


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

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

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


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

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

del 

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


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

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

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


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

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

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

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


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

:)

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

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

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

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

 

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

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

 

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

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


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

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

 

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

 

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

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


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

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

Уффффф

 

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

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

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


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

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

 

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

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


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

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

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


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

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

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

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

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


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

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

 

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

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


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

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

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


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

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

 

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

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

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


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

Тоже интересует этот вопрос, дефолтный шаблон. Пробовал ваш код вставлять в 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 в стилях добавил жёлтый цвет

как-то так

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


Ссылка на сообщение
Поделиться на другие сайты
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 в стилях добавил жёлтый цвет

как-то так

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

 

Изменено пользователем killcomp

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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