Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   сортировка на js + php (https://javascript.ru/forum/misc/77692-sortirovka-na-js-php.html)

Ruslan1289 07.06.2019 18:30

сортировка на js + php
 
Добрый день, нашел сортировку, которая подходит под мои нужды, но не могу правильно вставить в свой код,
вывожу кнопку, задаю ей id и data
<?$sql = mysql_query("SELECT DISTINCT(mark)FROM tr");if ($sql == true) {echo "<h4>Сортировка по марке</h4>";while ($row = mysql_fetch_array($sql)) {echo "<p><button id='filter' class='sort1' data-sort='$row[mark]'>$row[mark]</button>";}}?>

к чему должна сортировка применятся, тоже задаю data
echo "<div class='product__element' data-mark='$row[mark]'><table class='table_dark'><tr><td>";

сам код
let item = $('.product__element'),
red = $('.mark');

$('#filter').on('click', () => {
  item.addClass('hide');
  red.removeClass('hide');
  // Отсортируем видимые блоки в начало DOM дерева
  item.sortElements(function (a, b) {
    return $(a).hasClass('hide') > $(b).hasClass('hide') ? 1 : -1;
  });
});

jQuery.fn.sortElements = function () {
  var sort = [].sort;
  return function (comparator, getSortable) {
    getSortable = getSortable || function () {return this;};
    var placements = this.map(function () {
      var sortElement = getSortable.call(this),
      parentNode = sortElement.parentNode,
      nextSibling = parentNode.insertBefore(
      document.createTextNode(''),
      sortElement.nextSibling);

      return function () {
        if (parentNode === this) {
          throw new Error(
          "You can't sort elements if any one is a descendant of another.");

        }
        parentNode.insertBefore(this, nextSibling);
        parentNode.removeChild(nextSibling);
      };
    });
    return sort.call(this, comparator).each(function (i) {
      placements[i].call(getSortable.call(this));
    });
  };
}();

в тако виде код только сортирует по 1 выведенной кнопке, а товар который не подходит должен пропадать, но у меня он в конец отсылается, помогите пожалуйста разобраться, диплом горит


Часовой пояс GMT +3, время: 15:36.