Dinamikus menü adatbázisból
Sziasztok! A kérdésem a következő lenne:
<?php
// $szulo a szülőeleme a gyereknek amit látni szeretnénk
// $szint növekszik, ahogy mélyebbre megyünk a fában
// ezt használjuk hogy szépen beljebb kerüljenek a fa elemi
function displayChildren($szulo, $szint) {
// visszakapjuk a $szulo összes gyerekét
$kapcsolat = mysql_connect( "localhost","root", "" );
mysql_select_db( "test", $kapcsolat );
$result = mysql_query('SELECT felirat FROM tree WHERE szulo="'.$szulo.'";');
// minden gyermeket megjelenítünk
while ($row = mysql_fetch_array($result)) {
// beljebb toljuk és megjelenítjük a gyerek feliratát
echo str_repeat(' ',$szint).$row['felirat']."\n";
// újból meghívjuk a függvényt hogy megjelenítsük a gyerek gyerekeit
displayChildren($row['felirat'], $szint+1);
}
}
?>
<pre>
<?
displayChildren('',0);
?>
</pre>
Ez visszaad egy ilyet, hogy:
Programozás
PHP
String
PEAR
MAIL
HTTPCLIENT
HTML
CSS
kiválasztók
XHTML
Ez alapján akarnák egy menüt csinálni, olyat, hogy ennél a példánál maradva a PHP, PEAR,HTML,
CSS-nél megjelenne egy + ikon (olyan mint a windowsban). A menü így mükodik :
<script type="text/javascript">
<!--
d = new dTree('d');
d.add(0,-1,'Fomenu-egyszer kell');
d.add(1,0,'PHP','pelda.html');
d.add(2,1,'String','pelda.html');
d.add(3,1,'Pear','pelda.html');
d.add(4,3,'Mail');
d.add(5,3,'Httpclient','pelda.html');
d.add(6,0,'HTML','pelda.html');
d.add(7,6,'CSS','pelda.html');
d.add(8,7,'kiválasztók','pelda.html');
d.add(9,6,'XHTML','pelda.html');
document.write(d);
//-->
</script>
HOgyan kéne megcsinálni, hogy a fenti séma alapján hozzná létre a menüt?
Sziasztok! A kérdésem a következő lenne:
<?php
// $szulo a szülőeleme a gyereknek amit látni szeretnénk
// $szint növekszik, ahogy mélyebbre megyünk a fában
// ezt használjuk hogy szépen beljebb kerüljenek a fa elemi
function displayChildren($szulo, $szint) {
// visszakapjuk a $szulo összes gyerekét
$kapcsolat = mysql_connect( "localhost","root", "" );
mysql_select_db( "test", $kapcsolat );
$result = mysql_query('SELECT felirat FROM tree WHERE szulo="'.$szulo.'";');
// minden gyermeket megjelenítünk
while ($row = mysql_fetch_array($result)) {
// beljebb toljuk és megjelenítjük a gyerek feliratát
echo str_repeat(' ',$szint).$row['felirat']."\n";
// újból meghívjuk a függvényt hogy megjelenítsük a gyerek gyerekeit
displayChildren($row['felirat'], $szint+1);
}
}
?>
<pre>
<?
displayChildren('',0);
?>
</pre>
Ez visszaad egy ilyet, hogy:
Programozás
PHP
String
PEAR
MAIL
HTTPCLIENT
HTML
CSS
kiválasztók
XHTML
Ez alapján akarnák egy menüt csinálni, olyat, hogy ennél a példánál maradva a PHP, PEAR,HTML, CSS-nél megjelenne egy + ikon (olyan mint a windowsban). A menü így mükodik :
<script type="text/javascript">
<!--
d = new dTree('d');
d.add(0,-1,'Fomenu-egyszer kell');
d.add(1,0,'PHP','pelda.html');
d.add(2,1,'String','pelda.html');
d.add(3,1,'Pear','pelda.html');
d.add(4,3,'Mail');
d.add(5,3,'Httpclient','pelda.html');
d.add(6,0,'HTML','pelda.html');
d.add(7,6,'CSS','pelda.html');
d.add(8,7,'kiválasztók','pelda.html');
d.add(9,6,'XHTML','pelda.html');
document.write(d);
//-->
</script>
HOgyan kéne megcsinálni, hogy a e szerint a séma alapján hozzná létre a menüt?
adriankoooo
■ <?php
// $szulo a szülőeleme a gyereknek amit látni szeretnénk
// $szint növekszik, ahogy mélyebbre megyünk a fában
// ezt használjuk hogy szépen beljebb kerüljenek a fa elemi
function displayChildren($szulo, $szint) {
// visszakapjuk a $szulo összes gyerekét
$kapcsolat = mysql_connect( "localhost","root", "" );
mysql_select_db( "test", $kapcsolat );
$result = mysql_query('SELECT felirat FROM tree WHERE szulo="'.$szulo.'";');
// minden gyermeket megjelenítünk
while ($row = mysql_fetch_array($result)) {
// beljebb toljuk és megjelenítjük a gyerek feliratát
echo str_repeat(' ',$szint).$row['felirat']."\n";
// újból meghívjuk a függvényt hogy megjelenítsük a gyerek gyerekeit
displayChildren($row['felirat'], $szint+1);
}
}
?>
<pre>
<?
displayChildren('',0);
?>
</pre>
Ez visszaad egy ilyet, hogy:
Programozás
PHP
String
PEAR
HTTPCLIENT
HTML
CSS
kiválasztók
XHTML
Ez alapján akarnák egy menüt csinálni, olyat, hogy ennél a példánál maradva a PHP, PEAR,HTML,
CSS-nél megjelenne egy + ikon (olyan mint a windowsban). A menü így mükodik :
<script type="text/javascript">
<!--
d = new dTree('d');
d.add(0,-1,'Fomenu-egyszer kell');
d.add(1,0,'PHP','pelda.html');
d.add(2,1,'String','pelda.html');
d.add(3,1,'Pear','pelda.html');
d.add(4,3,'Mail');
d.add(5,3,'Httpclient','pelda.html');
d.add(6,0,'HTML','pelda.html');
d.add(7,6,'CSS','pelda.html');
d.add(8,7,'kiválasztók','pelda.html');
d.add(9,6,'XHTML','pelda.html');
document.write(d);
//-->
</script>
HOgyan kéne megcsinálni, hogy a fenti séma alapján hozzná létre a menüt?
Sziasztok! A kérdésem a következő lenne:
<?php
// $szulo a szülőeleme a gyereknek amit látni szeretnénk
// $szint növekszik, ahogy mélyebbre megyünk a fában
// ezt használjuk hogy szépen beljebb kerüljenek a fa elemi
function displayChildren($szulo, $szint) {
// visszakapjuk a $szulo összes gyerekét
$kapcsolat = mysql_connect( "localhost","root", "" );
mysql_select_db( "test", $kapcsolat );
$result = mysql_query('SELECT felirat FROM tree WHERE szulo="'.$szulo.'";');
// minden gyermeket megjelenítünk
while ($row = mysql_fetch_array($result)) {
// beljebb toljuk és megjelenítjük a gyerek feliratát
echo str_repeat(' ',$szint).$row['felirat']."\n";
// újból meghívjuk a függvényt hogy megjelenítsük a gyerek gyerekeit
displayChildren($row['felirat'], $szint+1);
}
}
?>
<pre>
<?
displayChildren('',0);
?>
</pre>
Ez visszaad egy ilyet, hogy:
Programozás
PHP
String
PEAR
HTTPCLIENT
HTML
CSS
kiválasztók
XHTML
Ez alapján akarnák egy menüt csinálni, olyat, hogy ennél a példánál maradva a PHP, PEAR,HTML, CSS-nél megjelenne egy + ikon (olyan mint a windowsban). A menü így mükodik :
<script type="text/javascript">
<!--
d = new dTree('d');
d.add(0,-1,'Fomenu-egyszer kell');
d.add(1,0,'PHP','pelda.html');
d.add(2,1,'String','pelda.html');
d.add(3,1,'Pear','pelda.html');
d.add(4,3,'Mail');
d.add(5,3,'Httpclient','pelda.html');
d.add(6,0,'HTML','pelda.html');
d.add(7,6,'CSS','pelda.html');
d.add(8,7,'kiválasztók','pelda.html');
d.add(9,6,'XHTML','pelda.html');
document.write(d);
//-->
</script>
HOgyan kéne megcsinálni, hogy a e szerint a séma alapján hozzná létre a menüt?
adriankoooo
Unordered List és dTree
De ha már a te példádnál tartotunk, akkor jöjjön a módosítás a hogy te JS függvényedet kapjuk:
És akkor ugye a JS-edbe beleírja a megfelelő hozzáadásokat. Már ha jól értettem, hogy a dTree objektumod hogy működik.
--------
Poetro
Cucc
adriankoooo
meg van
d.add(0,-1,'Fomenu-egyszer kell');
d.add(0,0,'Programozás','Programozás.html')
E helyett az kell , hogy:
d.add(0,-1,'Fomenu-egyszer kell');
d.add(1,0,'Programozás','Programozás.html').
Mégegyszer nagyon szépen köszönöm!
áááá
ezt generálja:
<script type="text/javascript">
<!--
d = new dTree('d');
d.add(0,-1,'Fomenu-egyszer kell');
d.add(1,0,'Programozás','Programozás.html');
d.add(3,1,'PHP','PHP.html');
d.add(5,2,'String','String.html');
d.add(6,2,'PEAR','PEAR.html');
d.add(8,3,'MAIL','MAIL.html');
d.add(9,3,'HTTPCLIENT','HTTPCLIENT.html');
d.add(4,1,'HTML','HTML.html');
d.add(6,2,'CSS','CSS.html');
d.add(8,3,'kiválasztók','kiválasztók.html');
d.add(7,2,'XHTML','XHTML.html');document.write(d);
//-->
</script>
Ez ezt generálja:
Programozás
PHP
MAIL
HTML
Tehát rossz a számozás...
Meg lehet javítani?
recipe
téma
Ahogy javasoltátok , inkább megcsináltam UL-el, de megintcsak elakadtam egy kis hibában:
Vagyis nem egészen jól, mert nekem olyat kéne generálnia, hogy az első <ul> elem <UL class=mktree id=tree1> legyen, a többi pedig sima <ul>. Már probalgattam sokféleképpen, de nem igazán akart összejönni;
várom válaszotokat:
adriankoooo
ul-bol js
A kerdesedre a valasz nagyon egyszeru:
A $szint parameter erteket hasznald ahhoz, hogy az elso szinten bele irod a class-t vagy nem irod bele...
Működik
Ez amúgy egy katalogizáló lesz nekem otthonra, ott még elakadtam, hogy milyen legyen az adatbázis felépítése.
pl.:
/Merevlemez
20GB
40GB
/Nyomtató
Tintasugaras
Lézeres
Itt csináljak minden fő csoportnak (Merevlemez, nyomtató) külön táblát? Vagy ti hogyan oldanátok meg?
adriankoooo
máshogy csoportosítsd
fokategoria(id, nev), ebben lesz a merevlemez, nyomtató
alkatresz(id, kategoria_id, nev, leiras..stb), ebben meg a kategoria_id az alkatrész főcsoportjának az id-je, a többi egyértelmű
Vagy ha csak egy táblával csinálod, akkor meg tetszőleges számú alcsoporot is létrehozhatsz:
tabla(id,parent_id,nev,leiras..stb), aztán mondjuk ilyen szabályokat alkalmazol, hogy a parent_id=0, akkor az főkategória, ha a leiras üres, akkor alcsoport, ha minden mező ki van töltve, akkor meg alkatrész