Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][sql] zagmatwane sortowanie
Forum PHP.pl > Forum > Przedszkole
gojira
po paru godzinach szukania, albo ja kiepsko szukam, albo zmeczenie juz

ale mam takie dwa problemy:

1) po wyrzuceniu wynilow wyszukiwania na ekran, prz nazwach kolumny mam strzalki, chce aby po nacisnieciu ustrzalki, wynik wyszukiwania sortowal sie wg kolumny ktora zostala posortowana od najwiekszych do najmniejszy itd.
  1. <?php
  2. <a href=&#092;"produkty.php?\"><img src='004.jpg' alt='Sortowanie Rosnaco wg NAZWY' /></a>
  3. Nazwa
  4. <a href=&#092;"produkty.php?\"><img src='066.jpg' alt='Sortowanie Malejaco wg NAZWY' /></a>
  5. ?>

wiem ze to mniejwiecej tak ma wygladac, nie wiem jednak co ma byc po .php?...
chodzi o sortowanie na danej stronie czyli bez ladowania

2) i niestety drugi problem:

musze zrobic wyniki wyrzycane na ekran stronami, znaczy sie tak ze mam 14 wynikow wyszukiwania, i wyswietlam je po 10, a nastepna strona to te 4...
szukalem wszedzie i powiem szczerze ze raczej nie znalazlem nic na ten temat
z gory dzieki za pomoc
drPayton
1. Jeżeli bez przeładowania, to tylko AJAX. Poszukaj na googlach klasy advAjax, na głównej stronie w przykładach masz takie coś
2. Stronicowanie to bardzo popularny temat, więc chyba niezbyt starannie szukałeś. Zobacz np klasę, którą ma @nospor w podpisie winksmiley.jpg
gojira
faktycznie wystarczylo zmienic na porcjowanie i znalazlem cos o stronicowaniu, ale w moim przypadku ajax odpada, to znaczy mam w planach nauke go, jaknajbardziej biggrin.gif ale na chwile obecna niet... mzoe zle powiedzialem ze bez przeladowania. ale jak zrobic mimo to, ze po nacisnieciu ktores ze stzralek przy naglowku kolumn (nazwie kolumny) sortowalo sie questionmark.gif
drPayton
1. Dwa rozwiązania:
a. JS potrafi sortować dane w komórkach tabeli, musiałbyś poszukać na googlach
b. Jeżeli dane pochodzą z bazy danych, np tak
- produkty.php?sortfield=nazwa&sortorder=asc
- w momencie pobierania danych z bazy:

  1. <?php
  2. $sortfield = (isset($_GET['sortfield'])) ? $_GET['sortfield'] : 'domyślnepole';
  3. $sortorder= (isset($_GET['sortorder'])) ? $_GET['sortorder'] : 'ASC';
  4.  
  5. //query: select (...) ORDER BY $sortfield $sortorder
  6. //(olewając możliwe w takim układzie sqlInjection ;) )
  7. ?>
vokiel
To nie moje, od razu sie przyznaje bez bicia winksmiley.jpg

W sekcji head:
  1. <script type="text/javascript">
  2. function exPL(x){
  3. return x.toLowerCase().replace(/[ąęśćółńżź]/g,function(s){
  4. return(s=='ą'?'a':s=='ę'?'e':s=='ś'?'s':s=='ć'?'c':
  5. s=='ó'?'o':s=='ł'?'l':s=='ń'?'n':s=='ź'?'z':'zż')+'ż'})
  6. }
  7.  
  8. var Sekcja,Wiersze,Tablica_Wierszy=[]
  9.  
  10. function initSort(){
  11. if(!document.getElementById)return
  12. Sekcja=document.getElementById('Sort_id')
  13. Wiersze=Sekcja.getElementsByTagName('tr')
  14.  
  15. for(var i=0;i<Wiersze.length;i++)
  16. Tablica_Wierszy[i]=Wiersze[i].cloneNode(true)
  17. }
  18.  
  19. function Sortuj(x, sort){
  20. if(!document.getElementById||!Wiersze)return
  21.  
  22. Tablica_Wierszy.sort(function(A,B,a,b){
  23. a=A.getElementsByTagName('td')[x].innerHTML
  24. b=B.getElementsByTagName('td')[x].innerHTML
  25. a=exPL(a);b=exPL(b);
  26. if (sort == 'up')
  27. return a>b?1:a<b?-1:0
  28. else
  29. return a<b?1:a>b?-1:0
  30. }
  31. )
  32.  
  33. while(Wiersze.length)
  34. Sekcja.removeChild(Wiersze[0])
  35. for(var i=0;i<Tablica_Wierszy.length;i++)
  36. Sekcja.appendChild(Tablica_Wierszy[i])
  37. }


& body:
  1. <body onload="initSort()">
  2.  
  3. <p>
  4. <a href="#" onclick="Sortuj(0, 'up');return false">Sortuj według Imienia Rosnaco</a>||<a href="#" onclick="Sortuj(0, 'down');return false">Sortuj według Imienia Malejaco</a><br>
  5. <a href="#" onclick="Sortuj(1);return false">Sortuj według Nazwiska</a><br>
  6. <a href="#" onclick="Sortuj(2);return false">Sortuj według Zawodu</a><br>
  7. </p>
  8.  
  9. <table border="1">
  10. <tr><th>Imię</th><th>Nazwisko</th><th>Zawód</th></tr>
  11. </tbody>
  12. <tbody id="Sort_id">
  13. <tr><td>Jan</td><td>Kowalski</td><td>kowal</td></tr>
  14. <tr><td>Maciej</td><td>Kuroń</td><td>kucharz</td></tr>
  15. <tr><td>Zbigniew</td><td>Zamachowski</td><td>aktor</td></tr>
  16. <tr><td>Adam</td><td>Małysz</td><td>skoczek</td></tr>
  17. <tr><td>Bill</td><td>Clinton</td><td>emeryt</td></tr>
  18. <tr><td>Dorota</td><td>Stalińska</td><td>aktorka</td></tr>
  19. <tr><td>Krzysztof</td><td>Nowak</td><td>robotnik</td></tr>
  20. <tr><td>Bolesław</td><td>Chrobry</td><td>król</td></tr>
  21. <tr><td>Jerzy</td><td>Stuhr</td><td>aktor</td></tr>
  22. <tr><td>Kamil</td><td>Durczok</td><td>dziennikarz</td></tr>
  23. <tr><td>Natalia</td><td>Kukulska</td><td>piosenkarka</td></tr>
  24. <tr><td>Piotr</td><td>Buśka</td><td>webmaster</td></tr>
  25. <tr><td>Colin</td><td>McRae</td><td>kierowca</td></tr>
  26. <tr><td>Henryk</td><td>Sienkiewicz</td><td>pisarz</td></tr>
  27. <tr><td>Kazimierz</td><td>Wielki</td><td>król</td></tr>
  28. <tr><td>Bogdan</td><td>Piekarski</td><td>piekarz</td></tr>
  29. <tr><td>Stanisław</td><td>Moniszko</td><td>muzyk</td></tr>
  30. <tr><td>Adam</td><td>Mickiewicz</td><td>pisarz</td></tr>
  31. </tbody>


Czyli bez przeładowania, bez ajaxa, skoro nie chcesz się go jeszcze uczyć, ale jakbyś chciał:
mintAjax - dyanmiczna tabela na dole strony
gojira
mhm, posatram sie to teraz obczaic i zaadoptowac pod swoje... dzieki smile.gif

no dobra, poniekad udalo sie sortowanie, mowie poniekad, bo sortuje mi wszytko tongue.gif a teraz mi chodzi aby sortowal tylko wynik wyszukiwania, i niestety tu juz leze;/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.