Paginacja oraz sortowanie

0

Zrobiłem sobie sortowanie wyników po wcześniejszym wyborze kolumny, która ma być posortowana przez odnośnik z linkiem: ?sortby=name-asc. Później odbieram to sobie przez switcha i wklejam do zapytania. To dobry sposób?

	switch($orderBy){
				case 'host-asc':
					$orderBy = 'host ASC';
					break;
				case 'host-desc':
					$orderBy = 'host DESC';
					break;
				case 'name-asc':
					$orderBy = 'name ASC';
					break;
				case 'name-desc':
					$orderBy = 'name DESC';
					break;
}

Teraz chciałbym dodać jeszcze do tego paginacje, ale nie wiem jak to zrobić, bo chciałbym aby będąc np. na drugiej stronie wyników, po kliknięciu na sortowanie według czegoś nie przeniosło mnie z powrotem na pierwszą stronę. Wiecie, żeby to takie przemyślane było i by w kodzie też to było jakoś dobrze napisane. Poratujecie przykładami misiaczki?

1

Tak, to się nie da. Strona zawsze będzie musiała się przeładować. Zobacz sobie plugin dataTables i rozwiązanie wykorzystujące Ajax i tzw. server side procesing. Jakiś przykład np. tutaj:
https://legacy.datatables.net/examples/data_sources/server_side.html

1

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/table - tu masz jak powinno budować się tabelę w HTML.
Jeśli nie interesuje Cię kwestia przeładowywania strony i tego jak dokładnie wyniki są sortowane to musiałbyś dodać dodatkowy parametr.
Proponuję abyś sobie w jakimś polu ukrytym w HTML trzymał numer strony na jakiej jesteś. Potem jak ktoś naciśnie na przycisk sortowania to będziesz wiedział na której stronie był i jaką "porcję" wyników wyświetlić.

0

Zrób sobie form z <input type="hidden" name="page" value="<?=$page;?>"> no i selectem do wyboru konkretnej metody sortowania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1