juz pracuje nad tym skryptem
p.s. a w php->skrypty php to jest kod dla jednego menu jakby co
EDIT
------------------------------------------------------------------------------
ok juz gotowy
<?
function dbConnect() {
$dbHost = \"localhost\";
$dbUser = \"root\";
$dbPass = \"\";
$dbName = \"menusy\";
if (!$link) {
fail(\"Nie można ustanowić połączenia z serwerem bazy danych\");
}
fail(\"Nie można znaleźć bazy danych $dbName\");
}
return $link;
}
$link = dbConnect();
$tablice = \"\";
// pierwsze menu
$query1 = \"SELECT * FROM menu1\";
$tablice .= \"pozycje1 = new Array();\";
for ($i1=0; $i1<$count1; $i1++) {
$tablice .= \"pozycje1[$i1] = new Option('\".$wiersz1[\"text\"].\"','\".$wiersz1[\"value\"].\"');\";
}
// end
// drugie menu
$tablice .= \"pozycje2 = new Array();\";
for ($i1=0; $i1<$count1; $i1++) {
$tablice .= \"pozycje2[$i1] = new Array();\";
$parent = \"$i1+1\";
$query2 = \"SELECT * FROM menu2 WHERE parent_id = $parent\";
for ($i2=0; $i2<$count2; $i2++) {
$tablice .= \"pozycje2[$i1][$i2] = new Option('\".$wiersz2[\"text\"].\"','\".$wiersz2[\"value\"].\"');\";
}
}
// end
// trzecie menu
$tablice .= \"pozycje3 = new Array();\";
for ($i1=0; $i1<$count1; $i1++) {
$tablice .= \"pozycje3[$i1] = new Array();\";
$parent2 = \"$i1+1\";
$query2 = \"SELECT * FROM menu2 WHERE parent_id = $parent2\";
for ($i2=0; $i2<$count2; $i2++) {
$tablice .= \"pozycje3[$i1][$i2] = new Array();\";
$parent3 = $wiersz2['id'];
$query3 = \"SELECT * FROM menu3 WHERE parent_id = $parent3\";
for ($i3=0; $i3<$count3; $i3++) {
$tablice .= \"pozycje3[$i1][$i2][$i3] = new Option('\".$wiersz3[\"text\"].\"','\".$wiersz3[\"value\"].\"');\";
}
}
}
// end
?>
<html>
<body>
<form name=\"menu\">
<p><select name=\"menu1\" size=\"1\" onChange=\"buduj2(document.menu.menu1.options.selectedIndex)\">
</select>
<select name=\"menu2\" size=\"1\" onChange=\"buduj3(document.menu.menu1.options.selectedIndex, document.menu.menu2.options.sele
c
edIndex)\">
</select>
<select name=\"menu3\" size=\"1\">
</select>
</p>
</form>
<script>
<!--
<?
?>
function buduj3(id1, id2) {
for (m = document.menu.menu3.options.length-1; m>0; m--) {
document.menu.menu3.options[m] = null;
}
for (i = 0; i<pozycje3[id1][id2].length; i++) {
document.menu.menu3.options[i] = pozycje3[id1][id2][i];
}
document.menu.menu3.options[0].selected=true;
}
function buduj2(id1) {
for (m = document.menu.menu2.options.length-1; m>0; m--) {
document.menu.menu2.options[m] = null;
}
for (i = 0; i<pozycje2[id1].length; i++) {
document.menu.menu2.options[i] = pozycje2[id1][i];
}
document.menu.menu2.options[0].selected=true;
buduj3(document.menu.menu1.options.selectedIndex, 0);
}
function buduj1() {
for (m = document.menu.menu1.options.length-1; m>0; m--) {
document.menu.menu1.options[m] = null;
}
for (i = 0; i<pozycje1.length; i++) {
document.menu.menu1.options[i] = pozycje1[i];
}
document.menu.menu1.options[0].selected=true;
buduj2(0);
}
buduj1();
//-->
</script>
</body>
</html>
a oto plik sql bazy danych (przyklad):
USE menusy;
#
# Table structure for table 'menu1'
#
CREATE TABLE menu1 (
id int(3) UNSIGNED NOT NULL AUTO_INCREMENT,
text char(255) DEFAULT '0',
value char(255) DEFAULT 'value',
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
#
# Dumping data for table 'menu1'
#
INSERT INTO menu1 VALUES("1", "Ksiazki", "value");
INSERT INTO menu1 VALUES("2", "CD / DVD", "cd");
INSERT INTO menu1 VALUES("3", "Znaczki", "znaczki");
#
# Table structure for table 'menu2'
#
CREATE TABLE menu2 (
id int(3) UNSIGNED NOT NULL AUTO_INCREMENT,
text char(255) DEFAULT '0',
value char(255) DEFAULT 'value',
parent_id int(3) DEFAULT '0',
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
#
# Dumping data for table 'menu2'
#
INSERT INTO menu2 VALUES("1", "ksiazki 1", "value", "1");
INSERT INTO menu2 VALUES("2", "ksiazki 2", "value", "1");
INSERT INTO menu2 VALUES("3", "ksiazki 3", "value", "1");
INSERT INTO menu2 VALUES("4", "ksiazki 4", "value", "1");
INSERT INTO menu2 VALUES("5", "cd 1", "value", "2");
INSERT INTO menu2 VALUES("6", "cd 2", "value", "2");
INSERT INTO menu2 VALUES("7", "cd 3", "value", "2");
INSERT INTO menu2 VALUES("8", "znaczki 1", "value", "3");
INSERT INTO menu2 VALUES("9", "znaczki 2", "value", "3");
#
# Table structure for table 'menu3'
#
CREATE TABLE menu3 (
id int(3) UNSIGNED NOT NULL AUTO_INCREMENT,
text char(255) DEFAULT '0',
value char(255) DEFAULT 'value',
parent_id int(3) DEFAULT '0',
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
#
# Dumping data for table 'menu3'
#
INSERT INTO menu3 VALUES("1", "ksiazki 1 1", "value", "1");
INSERT INTO menu3 VALUES("2", "ksiazki 1 2", "value", "1");
INSERT INTO menu3 VALUES("3", "ksiazki 1 3", "value", "1");
INSERT INTO menu3 VALUES("4", "ksiazki 2 1", "value", "2");
INSERT INTO menu3 VALUES("5", "ksiazki 2 2", "value", "2");
INSERT INTO menu3 VALUES("6", "ksiazki 3 1", "value", "3");
INSERT INTO menu3 VALUES("7", "ksiazki 3 2", "value", "3");
INSERT INTO menu3 VALUES("8", "ksiazki 4 1", "value", "4");
INSERT INTO menu3 VALUES("9", "ksiazki 4 2", "value", "4");
INSERT INTO menu3 VALUES("10", "cd 1 1", "value", "5");
INSERT INTO menu3 VALUES("11", "cd 1 2", "value", "5");
INSERT INTO menu3 VALUES("12", "cd 2 1", "value", "6");
INSERT INTO menu3 VALUES("13", "cd 2 2", "value", "6");
INSERT INTO menu3 VALUES("14", "cd 3 1", "value", "7");
INSERT INTO menu3 VALUES("15", "cd 3 2", "value", "7");
INSERT INTO menu3 VALUES("16", "znaczki 1 1", "value", "8");
INSERT INTO menu3 VALUES("17", "znaczki 1 2", "value", "8");
INSERT INTO menu3 VALUES("18", "znaczki 2 1", "value", "9");
INSERT INTO menu3 VALUES("19", "znaczki 2 2", "value", "9");
oczywiscie aby uzyc tego przykladowego pliku musisz najpierw stworzyc baze "menusy"
uffff
troche sie nameczylem
ale efekt jest... efektowny

p.s. polecam program MySQL Front