Autor | Zpráva | ||
---|---|---|---|
Anonymní Profil * |
#1 · Zasláno: 14. 9. 2005, 21:07:19
Ahoj, dělám obdobu vysouvacího menu v JS, akorát pro php. Když kliknu na odkaz, stránka se reloaduje, menu se rozbalí a zobrazí se podmenu. Celkem to bude pro 3 podmenu. Potřebuju, aby to menu bylo editovatelné přes nějaké rozhraní, takže aby menu bylo uložené v db. Nějak nevim, jak to chodí v praxi. Vůbec nevim, jak navrhnou tabulky a sestrojit k tomu příkazy pro výběr. Díky
|
||
Marty Profil |
#2 · Zasláno: 14. 9. 2005, 21:26:01
Tak pro tohle je přesně vhodný JavaScript. PHP bych zavrhnul okamžitě (stránky se musí znovu načítat, atd. ...).
Ale udělal bych to asi tak, že bych si udělal tabulku položek menu a v té bych podle nějakého klíče určoval, zda jde o část menu, submenu, atd... . Také bych je podle nějakého klíče spojil s určitým řádkem v menu. |
||
Charlie Profil |
#3 · Zasláno: 14. 9. 2005, 21:50:27
PHP bych zavrhnul okamžitě (stránky se musí znovu načítat, atd. ...)
Vidíš, mě zas vadí, když kliknu na odkaz a s obsahem se nic nestane. To je podle mně chyba. Co se týče menu, jde to udělat velmi jednoduše, pokud znáte počet zanoření. Pomocí rekurze se dá udělat zanořovací menu s teoreticky neomezeným počtem zanoření, ale takhle to zvládne pár příkazů. Navržení databázové tabulky by mělo být zhruba takovéhle: 1) ID auto_increment (bude jako rodičovský element při zanoření) 2) úroveň (1 až 3) 3) název 4) relativní URL Při sestavování menu bych použil zanořené seznamy, bude to tak přehledné i s vypnutými styly. |
||
Fred Profil |
#4 · Zasláno: 14. 9. 2005, 22:03:52
Taky bych to viděl na js, php až jako alternativu při nepřítomnosti js.
|
||
Martin Profil |
#5 · Zasláno: 14. 9. 2005, 22:34:18
Původní příspěvek jsem psal já :) Už to mám trochu vymyšlené, zítra Vám to rozepíšu. Také jsem se chtěl zeptat, jak se dají převést všechny znaky v řetězci s háčky a čárky na znaky bez háčků a čárek? Díky
|
||
Fred Profil |
#6 · Zasláno: 14. 9. 2005, 22:38:42 · Upravil/a: Fred
To nevím, ale možná pomůže tenhle thread http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&topic=11 647
|
||
Marty Profil |
#7 · Zasláno: 14. 9. 2005, 22:42:32 · Upravil/a: Marty
Pro potřeby to mám nějak takto:
function preved_kategorii ($kategorie) { $a = array("á","ä","č","ď","é","ě","ë","í","ň","ó","ö","ř","š","ť","ú","ů", "ü","ý","ž","Á","Ä","Č","Ď","É","Ě","Ë","Í","Ň","Ó","Ö","Ř","Š","Ť","Ú ","Ů","Ü","Ý","Ž"); $b = array("a","a","c","d","e","e","e","i","n","o","o","r","s","t","u","u", "u","y","z","A","A","C","D","E","E","E","I","N","O","O","R","S","T","U ","U","U","Y","Z"); return str_replace($a, $b, $kategorie); } |
||
Martin Profil |
#8 · Zasláno: 14. 9. 2005, 23:20:46
Kde se dá něco dozvědět o rekurzy?
|
||
Marty Profil |
#9 · Zasláno: 14. 9. 2005, 23:25:49
Rekurze je případ, kdy funkce volá sama sebe (pozor na ukončovací podmínku a přetečení paměti). Nic víc, nic míň.
Ač to není pro PHP, tak dobrá stránka je třeba: http://www.freenetpages.co.uk/hp/alan.gauld/czech2/cztutrecur.html |
||
krteczek Profil |
#10 · Zasláno: 15. 9. 2005, 01:50:42
no já to mám takhle: mám kategorie, sekce a články
jsou to 3 tabulky návrh je zhruba takový, že kategorie má id, nazev, zobrazovat sekce to samé, jen je u toho ještě sloupec kategorie kde se zapisuje id kategorie do které ta sekce patří články má to same jako kategorie, ale místo kategorie je sloupec sekce (+ spousta dalších sloupcu pro obsah clanku atd a tahám to z databáze takhle: <?php navíc je to doplněno o hrátky s cookies aby zustala otevřená ta sekce, na kterou se naposledy kliklo funkční příklad je k vidění například na http://www.jk-staj-kennbery.wz.cz/, nebo lépe na : http://www.krteczek.czweb.org/krt/ , kde užje menu tvořeno pomocí ul-li krteczek |
||
23k_ Profil * |
#11 · Zasláno: 15. 9. 2005, 13:28:23
to je dost spatnej skript
|
||
krteczek Profil |
#12 · Zasláno: 15. 9. 2005, 16:50:22
23k_: rejpale :-)
ukaž lepší pak tady blábolej, neříkám že je optimální ale je plně funkční krteczek |
||
Martin Profil |
#13 · Zasláno: 15. 9. 2005, 17:36:24 · Upravil/a: Martin
23k_
souhlasim. snažim se uvést do prace Charieho řešení, ale nějak se nedaří. Něni někde o tom někde nějakej článek?Díky |
||
Martin Profil |
#14 · Zasláno: 15. 9. 2005, 22:05:37 · Upravil/a: Martin
Tak tenhle http://interval.cz/clanek.asp?article=3801 článek mi ujasnil dost věcí, akorát ještě musim přijít na to, jak to vypsat ještě s ul a li, vybral jsem si hned tu první fci
|
||
Martin Profil |
#15 · Zasláno: 16. 9. 2005, 17:04:12 · Upravil/a: Martin
Vůbec si nevim rady s tim, jak vypsat položkydo vnořených seznamů pomocí ul a li.
Výsledek by měl vypadat asi takto. <ul> <li>o nas</li> <li>ahoj <ul> <li>a</li> <li>b</li> </ul> </li> <li>blee</li> </ul> Pomůžete mi s tim někdo?Dík |
||
Martin Profil |
#16 · Zasláno: 16. 9. 2005, 23:45:59
Udělal jsem to zatím takto
function getTree($parent, $level,&$menu) { $result = mysql_query("SELECT * FROM ch_menu WHERE uroven='".$parent."'"); $menu .= "<ul>"; while ($row = mysql_fetch_assoc($result)) { $menu .= "<li><a href=\"co=\">{$row["polozka"]}</a>\n"; getTree($row['id'], $level++,&$menu); $menu .= "</li>"; } $menu .= "</ul>"; } getTree(0,1,$menu); $menu = str_replace("<ul></ul>"," ",$menu); echo $menu; ale pořád to není ono. Napadá Vás, jak to zlepšit? |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0