Фильтр Opencart Ajax Для продуктов

Фильтр содержит кнопку поиска уточнения, и страница загружает продукт в соответствии с поиском. Но я хочу, когда я поставлю флажок, который должен отображать продукт. Это может быть достигнуто ajax ..

Оригинальный сценарий фильтра продукта Opencart 2.1.0.2

`<script type="text/javascript"><!--
$('#button-filter').on('click', function() {
    filter = [];

    $('input[name^='filter']:checked').each(function(element) {
        filter.push(this.value);
    });

    location = '<?php echo $action; ?>&filter=' + filter.join(',');
});
//--></script> 
`

И я попытался использовать ajax

`$(document).on('change','.sort_rang',function(){
    filter = [];

    $('input[name^='filter']:checked').each(function(element) {
        filter.push(this.value);
    });
   location = '<?php echo $action; ?>&filter=' + filter.join(',');

   $.ajax({
     type: "POST",
     location: location,
     success: function(data)
     {                  
        $('.products-block').html(data);
     }               
   });
   console.log;
  return false;
});`

Я получаю желаемый результат. Но он загружает всю страницу. И как я могу использовать любой загрузчик, если это возможно.

javascript,php,ajax,opencart2.x,

0

Ответов: 2


0

locationявляется глобальным и изменяет URL-адрес браузера. Чтобы избежать использования глобального, locationвам необходимо определить locationиспользованиеvar

$(document).on('change','.sort_rang',function(){
    filter = [];

    $('input[name^='filter']:checked').each(function(element) {
        filter.push(this.value);
    });
   var location = '<?php echo $action; ?>&filter=' + filter.join(',');

   $.ajax({
     type: "POST",
     location: location,
     success: function(data)
     {                  
        $('.products-block').html(data);
     }               
   });
   console.log;
  return false;
});

0

Это было просто небольшое изменение в коде. В функции успеха я удалил конкретный идентификатор и его рабочий тон

   <script type="text/javascript">
$(document).on('change','.sort_rang',function(){
    filter = [];

    $('input[name^='filter']:checked').each(function(element) {
        filter.push(this.value);
    });
   location = '<?php echo $action; ?>&filter=' + filter.join(',');

   $.ajax({
     type: "POST",
     location: location,
     success: function(data)
     {                  
        html(data);
     }               
   });
   console.log;
  return false;
});

JavaScript, PHP, AJAX, opencart2.x,
Похожие вопросы