Paginacja oraz sortowanie

Paginacja oraz sortowanie
LP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 24
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?

Kopiuj
	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?

jurek1980
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3581
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

jurek1980
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3581
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ć.

arczinosek
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 86
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.