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

Поиск товаров и Internet Explorer


Recommended Posts

Здравствуйте.
Совсем недавно наткнулся на очень интересную проблему, связанную с поиском товаров и пагинацией внутри них в IE11.
Есть поле поиска, при вводе значений и тригере событий строка кодируется при помощи метода encodeURIcomponent в javascript файле, формирует урл и меняет обьект location.
И все нормально, страница работает как надо, есть и пагинация по всем товарам, однако не все так радужно.
Браузер типа Internet Explorer не дает возможности пагинации между товарами (причем во всех остальных браузерах все нормально). 

Запросы типа:

?search=чайник&page=2

банально не работают. Причем внутри самого кода url как бы кодируется, однако ссылки все равно формируются этого типа.
И чтобы я не делал - IE все равно не хочет работать нормально.
Мне необходимо, чтобы ссылки формировались не 

?search=термос&page=2

А что-то вроде 

?search=термос&page=2

UPDATE: Почему-то с включенной консолью разработчика пагинация работает :huh:
Прикладываю код контроллера search.php с процессом формирования url и пагинацией.

 

Спойлер

$url = '';

if (isset($this->request->get['search'])) {
$url .= '&search=' . urlencode(html_entity_decode($this->request->get['search'], ENT_QUOTES, 'UTF-8'));
}

if (isset($this->request->get['tag'])) {
$url .= '&tag=' . urlencode(html_entity_decode($this->request->get['tag'], ENT_QUOTES, 'UTF-8'));
}

if (isset($this->request->get['description'])) {
$url .= '&description=' . $this->request->get['description'];
}

if (isset($this->request->get['category_id'])) {
$url .= '&category_id=' . $this->request->get['category_id'];
}

if (isset($this->request->get['sub_category'])) {
$url .= '&sub_category=' . $this->request->get['sub_category'];
}

if (isset($this->request->get['sort'])) {
$url .= '&sort=' . $this->request->get['sort'];
}

if (isset($this->request->get['order'])) {
$url .= '&order=' . $this->request->get['order'];
}

if (isset($this->request->get['limit'])) {
$url .= '&limit=' . $this->request->get['limit'];
}

$pagination = new Pagination();
$pagination->total = $product_total;
$pagination->page = $page;
$pagination->limit = $limit;
$pagination->url = $this->url->link('product/search', $url . '&page={page}');

$data['pagination'] = $pagination->render();

$data['results'] = sprintf($this->language->get('text_pagination'), ($product_total) ? (($page - 1) * $limit) + 1 : 0, ((($page - 1) * $limit)    		   > ($product_total - $limit)) ? $product_total : ((($page - 1) * $limit) + $limit), $product_total, ceil($product_total / $limit));

if ($page == 1) {
$this->document->addLink($this->url->link('product/search', '', true), 'canonical');
} elseif ($page == 2) {
$this->document->addLink($this->url->link('product/search', '', true), 'prev');
} else {
$this->document->addLink($this->url->link('product/search', $url . '&page='. ($page - 1), true), 'prev');
}

if ($limit && ceil($product_total / $limit) > $page) {
$this->document->addLink($this->url->link('product/search', $url . '&page='. ($page + 1), true), 'next');
}

 

 

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


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

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

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

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

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

Вхід

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

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

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

×
×
  • Створити...

Important Information

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