Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sortowanie polskich znaków
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Ardziej
@nospor a może wiesz co zrobić aby wyeliminować błąd z sortowaniem polskich znaczków w TinyTable ?
http://www.leigeber.com/2009/11/advanced-j...t-table-sorter/
nospor
Tinytable nie sortuje w bazie danych a w skrypcie JS. Nie ma to żadnego związku z tym tematem smile.gif

Nie, nie zajmowałem się sortowaniem w JS polskich krzaczków i nie chce mi się analizować kodu Tinytable by sprawdzac w jaki sposób oni sortują.

Dodatkowo jeśli operujesz na większej liczbie danych to nie korzystaj z Tinytable, gdyż to ustrojstwo wymaga pobrania wszystkich danych od razu i w żaden sposób to nie jest optymalne
Ardziej
No tak, choć głównie będzie to się sortować na localu i max z 150-200 wpisów będzie, wcześniej miałem podobny skrypt w JS i też polskie znaki segreguję na końcu.
A mam jeszcze jedno pytanie, jeżeli chciałbym wczytywać ustawienia zewnętrzne do tego JS to co byś wybrał ?
Parsowanie ini ?
nospor
Temat wydzielam
Cytat
u i max z 150-200 wpisów będzie
15-20 to jest malo. 150-200 to już nie potrzebnie naraz wszystko pobierasz smile.gif
Ardziej
Tyle, że mi chodzi na szybkości dostępu tych danych, dla mnie nie ma różnicy ile pobiera naraz, ważne aby było i szybko się zmieniało.
Może jakoś inaczej by to zrobić ?
Bo w TinyTable jest wyszukiwarka na live i sortowanie, więc ciężko w PHP+MYSQL coś takiego osiągnąć.
Jak ktoś by znał odpowiedź na pytanie to proszę o wskazówki smile.gif
Pozdrawiam smile.gif
nospor
Cytat
Może jakoś inaczej by to zrobić ?
oczywiscie - AJAX

Tu masz fajny grid do tego:
http://www.trirand.com/blog/

a tu demo:
http://trirand.com/blog/jqgrid/jqgrid.html

Cytat
Bo w TinyTable jest wyszukiwarka na live i sortowanie, więc ciężko w PHP+MYSQL coś takiego osiągnąć.
Bez jaj.... smile.gif
Grid co ci podałem ma to wszystko a nawet więcej
Ardziej
Dzięki bardzo za fajny ajaxowy przykładzik smile.gif
Jednak, jeżeli ktoś wie jak naprawić błąd w TinyTable to bym prosił również o odpowiedź, bo zanim wprowadzę JGrida to trochę roboty smile.gif
Pozdrawiam i dzięki nospor
wookieb
Linia 197 to jakaś tam sobie implementacja porównania wartości.
Prawidłowo robi się w ten sposób.
http://stackoverflow.com/questions/3630645...s-in-javascript
Ardziej
Witam ponownie, minęło już trochę czasu jednak dalej mi się nie udało tego problemu rozwiązać, dlatego uważam, że fajnie by było rozwiązać ten problem ponieważ do najłatwiejszych nie należy smile.gif
Nie będę ściemniał, JS dopiero się uczę, dokładnie korzystam z frameworka Jquery i już go coraz bardziej ogarniam. Moją główną specjalizacją jest AS i HTML/CSS oraz PHP/MYSQL, dlatego liczę na waszą pomoc smile.gif
Pozdrawiam i czekam na odpowiedź smile.gif

Cytat(nospor @ 11.10.2010, 09:02:09 ) *
oczywiscie - AJAX

Tu masz fajny grid do tego:
http://www.trirand.com/blog/

a tu demo:
http://trirand.com/blog/jqgrid/jqgrid.html

Bez jaj.... smile.gif
Grid co ci podałem ma to wszystko a nawet więcej

Witaj, skorzystałem z Twojej rady jednak nic z tego, pobiera poprawnie tylko na początku, po odświeżeniu lub sortowaniu w JqGrid polskie fonty lecą na koniec smile.gif
Więc JqGrid zbytnio nic nie pomógł, masz jakiś pomysł jak się z tym uporać ?
Pozdrawiam
nospor
Cytat
Witaj, skorzystałem z Twojej rady jednak nic z tego, pobiera poprawnie tylko na początku, po odświeżeniu lub sortowaniu w JqGrid polskie fonty lecą na koniec
Więc JqGrid zbytnio nic nie pomógł, masz jakiś pomysł jak się z tym uporać ?
Grid nie ma nic do polskich czcionek więc nie ściemniaj tongue.gif
grid pobiera dane ajaxem z Twojego skryptu php, w ktorym to ty pobierasz dane z bazy mysql. Jak ci źle sortuje to masz źle napisany skrypt php do pobierania danych lub masz złe kodowanie w bazie że ci polskie krzaki się źle sortują

ps: zakładam, że grida używasz nonstop w trybie ajax
Ardziej
Właśnie nie, kodowanie utf-8 wszędzie na plikach i w bazie utf8_unicode_ci i przy połączeniu też.
Włączam stronkę z JqGrid wyświetla się poprawnie, jednak jak kliknę np. na Tytuł to już po tym sortowaniu wszystko się psuje, czyli zdecydowanie coś po stronie JavaScript się dzieję, korzystam z przykładu JSON loading data. Więc problem jest niestety z JqGrid, coś pewnie nie tak zrobiłem, tylko co skoro korzystam z przykładu gotowego ?!
Pozdrawiam
nospor
Ponawiam:
grid wyswietla dane w takiej kolejnosci, w jakiej zwraca mu je serwer. Serwerem jest Twoj skrypt php. WIec to Twoj skrypt php zwraca dla grida dane w złej kolejności przy sortowaniu.

Pokaz kod
Ardziej
Oto kod:
  1. <?php //include the information needed for the connection to MySQL data base server.
  2. // we store here username, database and password
  3. include("db/db_config_jq.php");
  4.  
  5.  
  6. $page = $_REQUEST['page']; // get the requested page
  7. $limit = $_REQUEST['rows']; // get how many rows we want to have into the grid
  8. $sidx = $_REQUEST['sidx']; // get index row - i.e. user click to sort
  9. $sord = $_REQUEST['sord']; // get the direction
  10. if(!$sidx) $sidx =1;
  11.  
  12. $totalrows = isset($_REQUEST['totalrows']) ? $_REQUEST['totalrows']: false;
  13. if($totalrows) {
  14. $limit = $totalrows;
  15. }
  16.  
  17.  
  18. // connect to the database
  19. $db = mysql_pconnect($dbhost, $dbuser, $dbpassword)
  20. or die("Connection Error: " . mysql_error());
  21.  
  22. mysql_select_db($database) or die("Error conecting to db.");
  23.  
  24. mysql_query("SET NAMES utf8");
  25. mysql_query("SET CHARACTER SET utf8");
  26. mysql_query("SET collation_connection = utf8_unicode_ci");
  27.  
  28. //populateDBRandom();
  29. $result = mysql_query("SELECT COUNT(*) AS count FROM songs");
  30.  
  31.  
  32.  
  33. $row = mysql_fetch_array($result,MYSQL_ASSOC);
  34. $count = $row['count'];
  35.  
  36. if( $count >0 ) {
  37. $total_pages = ceil($count/$limit);
  38. } else {
  39. $total_pages = 0;
  40. }
  41. if ($page > $total_pages) $page=$total_pages;
  42. if ($limit<0) $limit = 0;
  43. $start = $limit*$page - $limit; // do not put $limit*($page - 1)
  44. if ($start<0) $start = 0;
  45.  
  46.  
  47. $SQL = "SELECT id, title, text, author, date, time, counter FROM songs ".$where." ORDER BY $sidx $sord LIMIT $start , $limit";
  48. $result = mysql_query( $SQL ) or die("Couldn?t execute query.".mysql_error());
  49. $responce->page = $page;
  50. $responce->total = $total_pages;
  51. $responce->records = $count;
  52. $i=0;
  53. while($row = mysql_fetch_array($result,MYSQL_ASSOC)) {
  54. $responce->rows[$i]['id']=$row[id];
  55. $responce->rows[$i]['cell']=array($row[id],$row[title],$row[text],$row[date],$row[time],$row[counter]);
  56. $i++;
  57. }
  58. echo json_encode($responce);
  59.  
  60. ?>
d3ut3r
Od wersji 3.7 jqGrid wprowadził parametr rowTotal jeżeli w swoim kodzie JS ustawiasz ten parametr wówczas skrypt wczytuje tyle rekordów ile ustawiłeś w tej zmiennej a dalsze operacje sortowania itd wykonuje po stronie użytkownika sprawdź czy nie ustawiasz tego parametru jeżeli tak to usuń to ustawienie wówczas każda operacja sortowania będzie wysyłała kolejne zapytanie do serwera. Nie widząc twojego kodu JS nie mogę stwierdzić czy to to ale może tak być.
Ardziej
Cytat(d3ut3r @ 28.01.2011, 02:05:46 ) *
Od wersji 3.7 jqGrid wprowadził parametr rowTotal jeżeli w swoim kodzie JS ustawiasz ten parametr wówczas skrypt wczytuje tyle rekordów ile ustawiłeś w tej zmiennej a dalsze operacje sortowania itd wykonuje po stronie użytkownika sprawdź czy nie ustawiasz tego parametru jeżeli tak to usuń to ustawienie wówczas każda operacja sortowania będzie wysyłała kolejne zapytanie do serwera. Nie widząc twojego kodu JS nie mogę stwierdzić czy to to ale może tak być.

Witaj, sprawdziłem w kodzie JS i mam:
  1. rowTotal:null

Usunięcie, zmiana z null na 0 też nie pomaga smile.gif
Dzięki za jakąś wskazówkę jednak to nic nie pomogło.
Tworzę sobie od nowa przykład w JqGrid i jest OKEJ, narazie przerzucę się na JqGrid z XML bo tak działa okej, dzięki za pomoc.
Ale ciekawi mnie czemu JSON coś tu krzaczy smile.gif
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.