#javascript #php #ajax #opencart2.x
#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; ?>amp;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; ?>amp;filter=' filter.join(',');
$.ajax({
type: "POST",
location: location,
success: function(data)
{
$('.products-block').html(data);
}
});
console.log;
return false;
});`
Я получаю желаемый результат.Но он загружает всю страницу. И как я могу использовать любой загрузчик, если это возможно.
Комментарии:
1. удалить строку
location
2. Путем удаления местоположения . Часть Ajax не работает
3. или скажем
var location =
Ответ №1:
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; ?>amp;filter=' filter.join(',');
$.ajax({
type: "POST",
location: location,
success: function(data)
{
$('.products-block').html(data);
}
});
console.log;
return false;
});
Ответ №2:
Это было просто небольшое изменение в коде.В успешной функции я удалил конкретный идентификатор, и он работает нормально
<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; ?>amp;filter=' filter.join(',');
$.ajax({
type: "POST",
location: location,
success: function(data)
{
html(data);
}
});
console.log;
return false;
});
Комментарии:
1. откуда берется .sort_rang?