Návrh stromového menu v PHP – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Návrh stromového menu v PHP – PHP – Fórum – Programujte.comNávrh stromového menu v PHP – PHP – Fórum – Programujte.com

 

wswolf
~ Anonymní uživatel
4 příspěvky
9. 11. 2009   #1
-
0
-

Zdravim, prave si lamu hlavu s tim jak vyresit stromove menu v PHP, tedy spise jeho logickou strukturu, potrebuji totiž zachovat vazbu "Název polžky" - "url-polozky" v normalnim menu je to snadne:
$menu['velka-auta'] = Velká auta;
$menu['stredni-auta'] = Střední auta;
$menu[mala-auta'] = Malá auta;

ale co když to menu potřebuju udělat stromově rozbalené, pak se nabízí aby byla položka array a tim vytvorit vicerozmerne pole, jenze tim ztratim vazbu klic - hodnota u nadrazene polozky. Mate nekdo nejaky napad? Pochybuji o tom ze jsem prvni co to resi, ale nepodarilo se mi nic vygooglit. Dik

Nahlásit jako SPAM
IP: 213.194.207.–
wise0
Stálý člen
9. 11. 2009   #2
-
0
-

pro přehlednost...

Nahlásit jako SPAM
IP: 81.25.16.–
"Život by byl mnohem jednodušší, kdybychom k němu měli zdrojový kód..."
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
9. 11. 2009   #3
-
0
-

To wise : No ja jsem zase moc nepochopil to tvoje :-) takže podrobněji. Jak bys zapsal do pole následující menu:

Auta
- mercedes benz
- třídvéřové
- ctyrdverove
- audi
- třídvéřové
- ctyrdverove
- opel
- třídvéřové
- ctyrdverove
Kytky
- ruže
-cervene
-zlute
.... (vic kytek bohužel neznám :-D )

To je fuk, jde o to aby ke kazdemu nazvu byla prirazen i klic (v mem pripade url adresa, ale to nehraje roli). Stačí to naznačit. Já nevim :-( Dík

Nahlásit jako SPAM
IP: 213.194.207.–
insider0
Věrný člen
9. 11. 2009   #4
-
0
-

snad ti tohle pomuze

$menu = array(

'url-na-prvek' => array(
'nazev' => 'Auta',
'podmenu' => array(
'url' => ...
),
),
);
//pak mas
foreach($menu as $url => $polozka)
echo '<a href="'.$url.'">'.$polozka['nazev'].'</a>';


ten foreach pak volat rekurzivne

Nahlásit jako SPAM
IP: 147.32.96.–
I don't want to see you go,[br] The sky is over[br] Even though we can't afford[br] The sky is over,[br] The sky is over us.[br][br] CIVILIZATION IS OVER
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
10. 11. 2009   #5
-
0
-

To insider : Jo tak to je přesně to co jsem nevěděl. Díky moc! Jan moc nevim jak volat foreach rekuzivně?

Nahlásit jako SPAM
IP: 213.194.207.–
insider0
Věrný člen
10. 11. 2009   #6
-
0
-

tak treba nejak nasledovne

function vypisMenu($menu){

foreach($menu as $url => $polozka){
// nejaky vypis, nebo co jen chces ... echo "asdfghj";
if(empty($polozka[''podmenu])) // nebo nejaky isset
vypisMenu($polozka[''podmenu]);
}
}

// tady chces vypsat menu
vypisMenu($menu);

Nahlásit jako SPAM
IP: 147.32.96.–
I don't want to see you go,[br] The sky is over[br] Even though we can't afford[br] The sky is over,[br] The sky is over us.[br][br] CIVILIZATION IS OVER
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 24 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý