Fastruktúrával kombinált megjelenítés/lekérdezések
Sziasztok!
Nagyon rövid időn belül el kell kezdenem fejleszteni egy webes alkalmazást, amelyben sajnos (a főnököm és az ügyfél kívánsága) fastruktúrában kell megjelenítenem adatokat és a fa bármelyik elemére kattintva le kell kérdeznem az elem adatait. Természetesen a fának ki/be csukhatónak kell lennie. Olvastam a hierarchikus adatkezelésről szóló cikkeket, de nem lettem okosabb. Jóval bonyolultabb (már létező) adatbázisból kell fát generálni. Megpróbáltam a főnökömet lebeszélni róla, de nem sikerült :(
Szóval "ascii art"-ban nagyjából ilyet kellene csinálni:
Cég 1
|_Pénzügy
| |_Jóska Pista
| |_Gipsz Jakab
| |_Feladat 1
|_Eszközök
|_Eszköz 1
Cég 2
Cég 3
Cég 4
S.i.t.
Szóval a példánál maradva, ha rákattintok Cég 1-re, akkor az alsó keretben egy táblázatban kilistázódnak Cég 1 adatai, de közben a cég 1 alatti fa ki is nyílik. Tehát nem csak a levelekre kattintva jelennek meg adatok, hanem a fában feljebb lévő ágak adatait is le kell kérdezni, attól függően, hogy éppen melyiken navigál. Tehát feljebb nyitás vagy csukás+lekérdezés, leveleken csak lekérdezés.
Találtam a neten egy-kettő kész treemenu, treeview JS alkalmazást, csak baromira nem sikerül őket ilyen szinten testreszabni. Sajnos egy ilyen használata, pláne készítése mély JavaScript ismereteket feltételez, ami nekem nincs:( Természetesen adatokkal PHP-vel lenne feltöltve, PostgreSQL-ből.
Kérdéseim:
- Csinált már valaki ilyet és honnan merített ihletet?
- Van-e ilyen kész JS komponens, ami gyakorlatilag csak megkapja az SQL-ből lekérdezett rekordokat és még azokat a aparamétereket, hoyg hoygan generálja le a fát ezekből?
Hálás köszönettel: Vales_73
■ Nagyon rövid időn belül el kell kezdenem fejleszteni egy webes alkalmazást, amelyben sajnos (a főnököm és az ügyfél kívánsága) fastruktúrában kell megjelenítenem adatokat és a fa bármelyik elemére kattintva le kell kérdeznem az elem adatait. Természetesen a fának ki/be csukhatónak kell lennie. Olvastam a hierarchikus adatkezelésről szóló cikkeket, de nem lettem okosabb. Jóval bonyolultabb (már létező) adatbázisból kell fát generálni. Megpróbáltam a főnökömet lebeszélni róla, de nem sikerült :(
Szóval "ascii art"-ban nagyjából ilyet kellene csinálni:
Cég 1
|_Pénzügy
| |_Jóska Pista
| |_Gipsz Jakab
| |_Feladat 1
|_Eszközök
|_Eszköz 1
Cég 2
Cég 3
Cég 4
S.i.t.
Szóval a példánál maradva, ha rákattintok Cég 1-re, akkor az alsó keretben egy táblázatban kilistázódnak Cég 1 adatai, de közben a cég 1 alatti fa ki is nyílik. Tehát nem csak a levelekre kattintva jelennek meg adatok, hanem a fában feljebb lévő ágak adatait is le kell kérdezni, attól függően, hogy éppen melyiken navigál. Tehát feljebb nyitás vagy csukás+lekérdezés, leveleken csak lekérdezés.
Találtam a neten egy-kettő kész treemenu, treeview JS alkalmazást, csak baromira nem sikerül őket ilyen szinten testreszabni. Sajnos egy ilyen használata, pláne készítése mély JavaScript ismereteket feltételez, ami nekem nincs:( Természetesen adatokkal PHP-vel lenne feltöltve, PostgreSQL-ből.
Kérdéseim:
- Csinált már valaki ilyet és honnan merített ihletet?
- Van-e ilyen kész JS komponens, ami gyakorlatilag csak megkapja az SQL-ből lekérdezett rekordokat és még azokat a aparamétereket, hoyg hoygan generálja le a fát ezekből?
Hálás köszönettel: Vales_73
NestedSet/TreeMenu
--
slink
http://20y.hu/
Miért kell JS?
Ezeket megnézted?
HTML_TreeMenu, Tree
--------
Poetro
Sajnos kell
Ettől függetlenül azért megnézem majd azt a PEAR Tree csomagot.
Vales_73
"A tiltakozás az újdonság négyzetével arányos." (Egely György)
Példa
--
slink
http://20y.hu/
Tehát
Nálam sajnos a helyzet az, hogy a már meglévő adatokból KELL ilyen hierarchikus böngészőt generálni, ráadásul még az adatbázis sémát sem kaptam meg, majd csak akkor, ha egy demo jellegű dolgot készítek, amit be lehet mutatni a sápadtarcú ügyfeleknek. Tehát egy szép új treeview-et elkészíteni még OK, de a kész adatbázisra ráeröltetni egy ilyen fa struktúrát... Hát attól félek nagyon. Ámbár az eredeti alkamazást egy Lotus Notes/Domino szolgálja ki, ahol egy JAVA Appletben jelenik meg ez a fastruktúra, ezért halványan abban bízom, hogy az adatbázis úgy lett megtervezve, hogy támogassa ezt. De akkor is, a feladat az, hogy egy létező adatbázis rekordjait kell megjeleníteni hierarchikusan, nicns módom adatbázist tervezni (újat), mert oda átmigrálni a tízezres nagyságú rekordot hát Isten Tudja... Szóval ezért szívás és ezért kértem ilyen kétségbeesetten segítséget Tőletek!
"A tiltakozás az újdonság négyzetével arányos." (Egely György)
Virtuális táblák
De ha magadnak írsz egy NestedSet jellegű wrappert az adatbázisod fölé, akkor utána még könyebben tudod majd ötvözni a TreeMenuvel.
Talán Poetro írásai is segítenek Neked:
--
slink
http://20y.hu/
A jó megközelítés
Megvan a hatalmas adathalmod. Csinálsz mellé egy fastruktúrát, amit egy másik táblában tárolsz, amiben egyedül az adathalmod azonosítóit tárolod el pluszban a faszerkezeten kívül(esetleg ha több típusú adatod is van, akkor még a típusát). Ilyen módon, akármit is tárolsz az adathalmodban, mindig meg tudod mutatni, hogy az éppen hol helyezkedik el a fastruktúrában, egyszerűen egy
JOIN
műveletet kell végrehajtanod a fastruktúra lekérdezésekor.Szerintem ezen mindenképpen érdemes elindulni, akár az én megoldásomat, akár másik megoldásokat használsz a fastruktúra leképzésére. A demót pedig ilyenformán meg tudod csinálni, és később mikor már meglesznek az adataid, szépen alkalmazni azokra,persze a tényleges fastruktúrát újra kell építeni az adathalom alapján, de remélhetőleg ez automatizálható valahogy (akár érdemes egy kis PHP kódot összerittyenteni az automatizálás végett ha direktben SQL-ből nem menne a struktúra létrehozása a kapott adatok alapján).
--------
Poetro
Igen, ez jó
Hálásan Köszönöm az eddigieket is!
"A tiltakozás az újdonság négyzetével arányos." (Egely György)
PEAR DB_NestedSet+HTML_TreeMenu: Frame-es megjelenítést hogyan
Tehát a menü is nestedset-tel készülne - terveim szerint - és a menüelemek target-je pedig a treeview_frame. Ott megjelenne az adatokból generált fa és a fa ágaira kattintva a viewframe-ben táblázatosan meg kell jelennie az adott ág vagy levél által reprezentált rekordnak.
Szóval arra még nem sikerült rájönnöm, hogy target frame-et hogyan kell a NestedSet-nek megadni, pedig ez emiatt életbevágó lenne!
Sajnos az alábbi módon ez nem megy:
Erre tud valaki 5leteket, aki használt/használ ilyet? Ha beválna, az egész projektet lehetne erre építeni, mert a DB_NestedSet egy kellemes kis eszközkészlet és jó esélyjel a határidőből sem futnék ki.
"A tiltakozás az újdonság négyzetével arányos." (Egely György)
Próba?
'name' => 'PéldaLista_1',
'url' => 'lista_1.php" target="viewframe'
);
Ez azt feltételezi, hogy a kimenet a következőképpen generálódik:
Poetro
Úgytűnik ez jó lesz :)
A base target-re mintha tojna magasról vmiért, pedig rendes HTML outputot rakok össze (remélem). Ellenben ez működőképesnek tűnik. Paramétereket is át lehet lökni GET-tel, etc.
Ha ezt sikerül rendesen megcsinálni mostmár, akkor Zsír Király lesz!
"A tiltakozás az újdonság négyzetével arányos." (Egely György)
base target
--
slink
http://20y.hu/
Hierarchikus adatkezelés frissítés
--------
Poetro