@php7788

Как сделать так чтобы при нажатии кнопки добавлялось значение ?sort=p.price&order=DESC в конец строки?

У меня кнопка сортировки по цене. Мне нужно сделать так чтобы когда я на эту кнопку нажимал, она работала по возрастанию, а когда опять на неё повторно то уже по убыванию. У меня в функции есть такое:
Когда в конец адресной строки добавить ?sort=p.price&order=ASC , сортировка будет по возрастанию. А когда в конец добавить ?sort=p.price&order=DESC , сортировка будет по убыванию. Нужно сделать так чтобы когда я нажимал на кнопку сортировки, она добавляла в конец строки ?sort=p.price&order=ASC . А когда еще раз на эту кнопку то - ?sort=p.price&order=DESC . Нужно это реализовать так чтобы к одной кнопке было подсоединено два значения которых нужно добавить в конец строки. Наверно это нужно сделать как то с помощью Javascript?
Мне нужно это сделать на мой сайт. Я нашел такое на чужом сайте - https://xi.express/catalog/smartfony/xiaomi_redmi_... там сортировка по цене, которая мне нужна. Но какой там Javascript код не понятно.

Буду очень благодарен.
  • Вопрос задан
  • 509 просмотров
Решения вопроса 1
Seasle
@Seasle Куратор тега JavaScript
Как вариант:
const toggleOrder = () => {
  const params = new URLSearchParams(window.location.search);

  params.set('order', params.get('order') === 'DESC' ? 'ASC' : 'DESC');
  window.location.search = params.toString();
};

Пример. Код.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@legtr
Несколько путей для развития есть.

1 - через php смотришь GET и по переменным формируешь обратную ссылку.
К примеру
if( $_GET['order'] == 'ASC'){
$url = 'DESC';
}
а уже окончание подставляешь в ссылку.

2 - формируешь 2 ссылки и по клику одну прячешь другую показываешь стилями (при условии что у тебя вывод информации идет через ajax
Ответ написан
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
Front-end вариант решения:
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
28 апр. 2024, в 20:09
9000 руб./за проект
28 апр. 2024, в 19:54
2000 руб./за проект
28 апр. 2024, в 19:54
5000 руб./за проект