Есть таблица с пагинацией, которая работает параметром get значение которого подставляется в ссылки ( снизу на картинке )
Как сделать сортировку(гет запросом)по полям, из шапки таблицы, с земеной ask desc при двойном нажатии (с js совсем все печально , но если ни как средствами php ,постараюсь понять)
Проблемы которые возникают при такой же реализации(как в пагинации): 2 одинаковых гет параметра по типу (&sortBy=id&sortBy=id&...)при неоднократном нажатии
смена ? и & по ситуации ,если добавлять к url &sortBy=id может получиться так : localhost/index.php&.....
PS нагуглил, что можно убрать все строки из таблицы отформатировать jsом и вернуть в таблицу подскажите как по проще это реализовать? Если без js не обойтись
Чтобы сделать сортировку передавайте параметры сортировки в свой скрипт. В php есть отличная функция http_build_query
. Воспользуйтесь ей:
index.php?<?= http_build_query(['sortBy' => 'id', 'sortDirection' => 'asc']) ?>
В таком случае get-параметры у вас будут ровно те, что вы укажите. И проблем с ? и & не будет.
Правильные наборы параметров сформировать довольно просто:
<?php
function makeSortLinks($columns, $currentQuery) {
$currentSortBy = $currentQuery['sortBy']?? '';
$currentSortDirection = $currentQuery['sortDirection']?? '';
$links = [];
foreach ($columns as $column) {
if ($currentSortBy === $column) {
$sortDirection = ($currentSortDirection === 'desc')? 'asc' : 'desc';
} else {
$sortDirection = 'asc';
}
$links[$column] = http_build_query([
'sortBy' => $column,
'sortDirection' => $sortDirection,
]);
}
return $links;
}
$links = makeSortLinks(['id', 'userName', 'email'], $_GET);
var_dump($links);
Затем просто используете этот набор:
<a href="/index.php?<?= $links['id'] ?>">id</a>
С пагинацией поступайте так же:
index.php?<?= http_build_query(['page' => $page] + $_GET) ?>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Часть программы должна считывать двумерный массив и искать количество элементов равным 0Но, как я понял, оно даже полностью не считывает...
Всем приветДелаю систему аутентификации на Laravel через SMS
Обновился до PHP 72, а вместе с ним обновились и все модули, включая php-fpm