Opencart Ajax过滤器适用于产品

时间:2016-10-17 06:20:15

标签: javascript php ajax opencart2.x

过滤器包含精炼搜索按钮,页面根据搜索加载产品。但是当我选中产品应该显示的复选框时我想要。这可以通过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;
});`

我得到了理想的结果。但它加载了整个页面。如果可能的话,我怎样才能使用任何装载机。

2 个答案:

答案 0 :(得分:0)

location是全局的,会更改浏览器网址。要避免使用全局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;
});

答案 1 :(得分:0)

这只是代码中的一点变化。在成功功能中,我删除了特定的ID及其正常工作

   <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;
});