Sziasztok!
Sajnos újabb problémába ütköztem. Az egyik oldalamon szeretném kilistázni a felhasználókat. Tudok keresni (többek közt) a nevükben. A tablesort_sql-lel viszont meggyűlik a bajom. Konkrétan, ha a fejléc feliratára kattintok, akkor "elvesznek" a formból kapott adatok, azaz, ha pl. szűrtem valamire, és ezt rendeztem, akkor már nem a szűrt adatokat rendezi, hanem ismét az egészet. (Alapértelmezett, hogy ha nincs megadva szűrési feltétel, akkor az összes usert látom.)
Jónéhány embernek előjött ez a probléma, egyetlen igazi megoldásnak tűnhet(ne) ez:
http://drupal.org/node/91603
Itt azt írják, ez megoldja a problémát. De sajnos nem. Ugyanazt tapasztalom, mint eddig.
Tud valaki segíteni?
Fórum:
reszletezd
konkret kod kellene, hogy hogyan szursz a tablan, es hogyan (milyen sql select-el) hasznalod a tablesort_sql fuggvenyt..
a kért kódrészlet
Körülbelül ennyi lenne a releváns kód. De a táblázat jó, meg minden, a fejléc is jól áll össze. A probléma azzal van, mikor rákattintok valamelyik fejléc-feliratra, akkor újratölti az egész oldalt, és nem marad meg a szűrés eredménye, és nem azt rendezi, hanem az egészet. Ha nincs szűrés, nincs is semmi gondom, működik szépen.
Meg persze kipróbáltam simán form nélkül, hogy tudok-e rendezhető táblázatot létrehozni, és úgy ment a dolog...
form_values
ez a hook_submit-ban van?
szurd be ezt a kodot a $pattern ertekadas moge, ha a fejlecre kattintas utan megjelenik ez az uzenet, akkor nyilvanvalo a hiba..
nem ez
Nem ez a baj, mondtam, hogy teljesen jól működik a szűrés! Csak a rendezéssel van bajom.
jol mukodik
de a rendezes utan mar nem mukodik jol a szures. igaz?
azzal, hogy rakattintasz a rendezesre, ujratoltod az oldalt, a form_values-ben mar nem lesz semmi..
pontosan!
Igen, pontosan ez történik! De ezt eddig is tudtam! Erre kellene valamilyen megoldás!
Van valamilyen ötleted?
megoldas
nezd meg a peldat a watchdog modulban.
a $fom_values erteket lementi a $_SESSION valtozoba, es ezt hasznalja szuronek a tablazat megjelenitesenel..
köszi
Köszönöm, ez még jónak is tűnik. De azt a kérést kaptam, hogy ne használjak SESSION-t. :( Úgyhogy mást kell kitalálnom.
ott a megoldás az orrod előtt
A webes alkalmazás emlékezet nélküli ezért valahova (session vagy url) bele kell tenned azokat az adatokat amikre szükséged van.
Az url-be úgy teheted bele ha
1. átírod a rendező linkeket. Ehhez a sminkedbe meg kell valósítani a theme_table-t( http://api.drupal.org/api/function/theme_table/5 ) és a $cell = tablesort_header($cell, $header, $ts); sor után hozzá kell még adnod a linkhez a Te paramétereidet is. Ezt egy egyszerű regexp-el megteheted.
2. az útvonalba belekódolod a keresési paramétereket. (http://kerekparpiac.hu/ -n láthatsz erre példát, de rendezni nem lehet, mert végül azt már nem kérték, de az is menne, ha kéne.)
Session-ba pedig nem érdemes beletenni, mert lehet, hogy a júzer nem egy böngészőpéldányt futtat, hanem kettőt, esetleg többet. És akkor aztán vannagykavar.
Session felhasználó állapotát tárolja nem a böngészés állapotát(azt az url tárolja). Ezért erre használni mondjuk úgy - és most igyekszem maximálisan visszafogni magamat - nem ajánlott.
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
köszönöm
Nagyon köszönöm, sikerült megoldanom.