Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Не работает пагинация страниц с товарами.


vsok2007

Recommended Posts

Подскажите из опыта или может кто-то увидит проблему. Не работает пагинация https://biology.studio-domino.kiev.ua/vitaminy-po-simptomam. Не листаются страницы.  Фильтр каким-то скриптом перехватывает. Если фильтр отключаю, то все нормально.  Фильтр шаблонный. Т.е. был в шаблоне. Разработчик шаблона, как оказалось, не хочет помогать так как, опять же как оказалось, https://elements.envato.com/ru/ не гарантирует поддержку шаблонов которые берутся на их площадке.  Фильтр тут So Filter Shop By

Надіслати
Поділитися на інших сайтах


5 минут назад, vsok2007 сказал:

Подскажите из опыта или может кто-то увидит проблему. Не работает пагинация https://biology.studio-domino.kiev.ua/vitaminy-po-simptomam. Не листаются страницы.  Фильтр каким-то скриптом перехватывает. Если фильтр отключаю, то все нормально.  Фильтр шаблонный. Т.е. был в шаблоне. Разработчик шаблона, как оказалось, не хочет помогать так как, опять же как оказалось, https://elements.envato.com/ru/ не гарантирует поддержку шаблонов которые берутся на их площадке.  Фильтр тут So Filter Shop By

В данный момент проблему не увидел. Работает пагинация и при выборе фильтра

Надіслати
Поділитися на інших сайтах


  

11 минут назад, Dimasscus сказал:

В данный момент проблему не увидел. Работает пагинация и при выборе фильтра

 


у меня не работает кликая по номерам страницы идет просто прокрутка вверх страницы происходит и ссылка в адресной строке такая https://biology.studio-domino.kiev.ua/vitaminy-po-simptomam&page=undefined т.е. вместо номера строки "undefined "

Змінено користувачем vsok2007
Надіслати
Поділитися на інших сайтах


5 минут назад, vsok2007 сказал:

  

 


у меня не работает кликая по номерам страницы идет просто прокрутка вверх страницы происходит и ссылка в адресной строке такая https://biology.studio-domino.kiev.ua/vitaminy-po-simptomam&page=undefined т.е. вместо номера строки "undefined "

 

Screenshot_2021-12-13-22-06-50-652_com.android.chrome.jpg

Screenshot_2021-12-13-22-06-58-265_com.android.chrome.jpg

Screenshot_2021-12-13-22-07-06-417_com.android.chrome.jpg

Надіслати
Поділитися на інших сайтах


пагинация вообще не работает у меня.
Посмотрел, как оно сделано - стандартная ссылка на страницу пагинации перехватывается, все верно, формируется адрес, пушится в адресную строку и вызывается какой-то там ajaxRequest от этого самого супер-фильтра.
Но вот у меня адрес становится ...&page=undefined и после этого вообще ничего уже из пагинации не работает.

фильтр какого-то очередного умельца...

Надіслати
Поділитися на інших сайтах

Ага. Получается что не листается только на компьютерной версии, на мобильной листается. Тут в шаблоне мобильная версия по своему выводится. Нужно здесь ковырять.

Надіслати
Поділитися на інших сайтах


11 минут назад, vsok2007 сказал:

  

 


у меня не работает кликая по номерам страницы идет просто прокрутка вверх страницы происходит и ссылка в адресной строке такая https://biology.studio-domino.kiev.ua/vitaminy-po-simptomam&page=undefined т.е. вместо номера строки "undefined "

Самая частая причина, правки  в файлах. Например попытка скрыть в категории товары которых нет в наличии итп.

Надіслати
Поділитися на інших сайтах

Только что, Prooksius сказал:

пагинация вообще не работает у меня.
Посмотрел, как оно сделано - стандартная ссылка на страницу пагинации перехватывается, все верно, формируется адрес, пушится в адресную строку и вызывается какой-то там ajaxRequest от этого самого супер-фильтра.
Но вот у меня адрес становится ...&page=undefined и после этого вообще ничего уже из пагинации не работает.

фильтр какого-то очередного умельца...

Странно. Почему у меня работает?

Надіслати
Поділитися на інших сайтах


В коде есть js функция

function createParams( url, o ) {
	   	var p = url.split('?')[1];

 

разбивает строку по ? 

а у вас в строке браузера 

biology.studio-domino.kiev.ua/vitaminy-po-simptomam/page-2

Надіслати
Поділитися на інших сайтах

Если в ссылках в пагинации будет

biology.studio-domino.kiev.ua/vitaminy-po-simptomam?page=2

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

Разработчик шаблона не учел чпу

Надіслати
Поділитися на інших сайтах

В общем если не трогать функцию js createParams, а изменить функцию clickPaginationOption которая отвечает именно за клик по погенации и сделать под ваши чпу

Обязательно сохраните старый вариант функции, хотя сейчас код дам с комментариями

Примерно вот так

function clickPaginationOption() {
		$(document).on('click', '.pagination li a', function(e) {
			e.preventDefault();
			e.stopPropagation();

			//if($(this).attr('href').indexOf("page") == -1){
			//	params.page = 1;
			//}
			//params = createParams( $(this).attr('href'), params );
			
			var p = $(this).attr('href').split('page-')[1];
			
			if(url.indexOf("page") != -1){
				//if(params.page != "")	{
				if(p != "")	{	
					//url = url.replace(/(&page=)[^\&]+/,'&page='+params.page);
					url = url.replace(/(&page=)[^\&]+/,'/page-'+p);
				}else{
					//url = url.replace(/(&page=)[^\&]+/,'');
					url = url.replace(/(\/page-)[^\&]+/,'');
					location.href= url;
				}
			}else{
				//url = url+'&page='+params.page;
				url = url+'/page-'+p;
			}

			updateURL();
			requestAjax();
		})
	}

 

ИЛИ вот такой

function clickPaginationOption() {
		$(document).on('click', '.pagination li a', function(e) {
			e.preventDefault();
			e.stopPropagation();

			//if($(this).attr('href').indexOf("page") == -1){
			//	params.page = 1;
			//}
			//params = createParams( $(this).attr('href'), params );
			
			var href = $('.qwer').attr('href');	
			var p = $('.qwer').attr('href').split('page-')[1];
			
			if(p != "") {
				url = href.replace(/(\/page-)[^\&]+/,'/page-'+p);
			} else {
				url = href.replace(/(\/page-)[^\&]+/,'');
				location.href= url;
			}
			/*
			if(url.indexOf("page") != -1){
				if(params.page != "")	{
					url = url.replace(/(&page=)[^\&]+/,'&page='+params.page);
				}else{
					url = url.replace(/(&page=)[^\&]+/,'');
					location.href= url;
				}
			}else{
				url = url+'&page='+params.page;
			}
            */
			updateURL();
			requestAjax();
		})
	}

 

ИЛИ вот так

function clickPaginationOption() {
		$(document).on('click', '.pagination li a', function(e) {
			e.preventDefault();
			e.stopPropagation();

			//if($(this).attr('href').indexOf("page") == -1){
			//	params.page = 1;
			//}
			//params = createParams( $(this).attr('href'), params );
			
			var href = $('.qwer').attr('href');	
			var p = $('.qwer').attr('href').split('page-')[1];
			
			if(p != "") {
				url = href;
			} else {
				url = href;
				location.href= url;
			}
			/*
			if(url.indexOf("page") != -1){
				if(params.page != "")	{
					url = url.replace(/(&page=)[^\&]+/,'&page='+params.page);
				}else{
					url = url.replace(/(&page=)[^\&]+/,'');
					location.href= url;
				}
			}else{
				url = url+'&page='+params.page;
			}
            */
			updateURL();
			requestAjax();
		})
	}

 

Змінено користувачем Venter
Надіслати
Поділитися на інших сайтах

5 часов назад, vsok2007 сказал:

Получается что не листается только на компьютерной версии, на мобильной листается. Тут в шаблоне мобильная версия по своему выводится. Нужно здесь ковырять.

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

Надіслати
Поділитися на інших сайтах

9 часов назад, Venter сказал:

В общем если не трогать функцию js createParams, а изменить функцию clickPaginationOption которая отвечает именно за клик по погенации и сделать под ваши чпу

Обязательно сохраните старый вариант функции, хотя сейчас код дам с комментариями

Примерно вот так

Спойлер


function clickPaginationOption() {
		$(document).on('click', '.pagination li a', function(e) {
			e.preventDefault();
			e.stopPropagation();

			//if($(this).attr('href').indexOf("page") == -1){
			//	params.page = 1;
			//}
			//params = createParams( $(this).attr('href'), params );
			
			var p = $(this).attr('href').split('page-')[1];
			
			if(url.indexOf("page") != -1){
				//if(params.page != "")	{
				if(p != "")	{	
					//url = url.replace(/(&page=)[^\&]+/,'&page='+params.page);
					url = url.replace(/(&page=)[^\&]+/,'/page-'+p);
				}else{
					//url = url.replace(/(&page=)[^\&]+/,'');
					url = url.replace(/(\/page-)[^\&]+/,'');
					location.href= url;
				}
			}else{
				//url = url+'&page='+params.page;
				url = url+'/page-'+p;
			}

			updateURL();
			requestAjax();
		})
	}

ИЛИ вот такой

Спойлер


function clickPaginationOption() {
		$(document).on('click', '.pagination li a', function(e) {
			e.preventDefault();
			e.stopPropagation();

			//if($(this).attr('href').indexOf("page") == -1){
			//	params.page = 1;
			//}
			//params = createParams( $(this).attr('href'), params );
			
			var href = $('.qwer').attr('href');	
			var p = $('.qwer').attr('href').split('page-')[1];
			
			if(p != "") {
				url = href.replace(/(\/page-)[^\&]+/,'/page-'+p);
			} else {
				url = href.replace(/(\/page-)[^\&]+/,'');
				location.href= url;
			}
			/*
			if(url.indexOf("page") != -1){
				if(params.page != "")	{
					url = url.replace(/(&page=)[^\&]+/,'&page='+params.page);
				}else{
					url = url.replace(/(&page=)[^\&]+/,'');
					location.href= url;
				}
			}else{
				url = url+'&page='+params.page;
			}
            */
			updateURL();
			requestAjax();
		})
	}

ИЛИ вот так

Спойлер


function clickPaginationOption() {
		$(document).on('click', '.pagination li a', function(e) {
			e.preventDefault();
			e.stopPropagation();

			//if($(this).attr('href').indexOf("page") == -1){
			//	params.page = 1;
			//}
			//params = createParams( $(this).attr('href'), params );
			
			var href = $('.qwer').attr('href');	
			var p = $('.qwer').attr('href').split('page-')[1];
			
			if(p != "") {
				url = href;
			} else {
				url = href;
				location.href= url;
			}
			/*
			if(url.indexOf("page") != -1){
				if(params.page != "")	{
					url = url.replace(/(&page=)[^\&]+/,'&page='+params.page);
				}else{
					url = url.replace(/(&page=)[^\&]+/,'');
					location.href= url;
				}
			}else{
				url = url+'&page='+params.page;
			}
            */
			updateURL();
			requestAjax();
		})
	}

 

 

Первый вариант листает только один раз (т.е. при клике на номер страницы один раз переход идет но потом при клике на номер страницы страница только прокручивается вверх), второй не листает (при клике на номер страницы ничего не происходит). И третий такой как второй.

Надіслати
Поділитися на інших сайтах


50 минут назад, vsok2007 сказал:

Первый вариант листает только один раз (т.е. при клике на номер страницы один раз переход идет но потом при клике на номер страницы страница только прокручивается вверх), второй не листает (при клике на номер страницы ничего не происходит). И третий такой как второй.

ну я вам объяснил что и почему, кинул примеры вашего кода, ну а дальше допиливайте сами или наймите кого то, потому как тестировать нужно на вашем живом проекте а не в консоли. там вообще в коде целая простыня написана

  • +1 1
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.