sorry das ich mich nicht früher gemeldet habe - hatte einfach zu viel um die Ohren ... keine böse Absicht. Aber wie ich sehe hast du es jetzt ja hinbekommen

Ich habe das Script nochmals überarbeitet, damit die Funktion nicht für jedes Listenfeld neu erstellt werden muss. Das war so nicht im TUT - insofern etwas unsauber von mir, aber das TUT sollte ja auch nur die Möglichkeit aufzeigen ...
Lange Rede, kurzer Sinn, hier die überarbeitete Version:
PHP-Code:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
<!--
<?php
/* Verbindung aufbauen, auswählen einer Datenbank */
$link = mysql_connect("localhost", "root@localhost", "")
or die("Keine Verbindung möglich: " . mysql_error());
mysql_select_db("patrick1") or die("Auswahl der Datenbank fehlgeschlagen");
// abhängiges Kombifeld 'drp2 aka liste2' erzeugen
$rs=mysql_query("select * from tbl_artikel") or die(mysql_error());
$rows=mysql_num_rows($rs);
echo "\tvar liste2=new Array($rows)\n"
. "\tfor(var i=0;i<liste2.length;i++)\n"
. "\t\tliste2[i]=new Array(2);\n";
$n=0;
while($zeile=mysql_fetch_assoc($rs)) {
echo "\tliste2[$n][0]=".$zeile['art_id'].";\n"
. "\tliste2[$n][1]='".$zeile['art_bez']."';\n"
. "\tliste2[$n][2]=".$zeile['art_grp'].";\n";
$n++;
}
// abhängiges Kombifeld 'drp3 aka liste3' erzeugen
$rs=mysql_query("select * from tbl_hersteller") or die(mysql_error());
$rows=mysql_num_rows($rs);
echo "\tvar liste3=new Array($rows)\n"
. "\tfor(var i=0;i<liste3.length;i++)\n"
. "\t\tliste3[i]=new Array(2);\n";
$n=0;
while($zeile=mysql_fetch_assoc($rs)) {
echo "\tliste3[$n][0]=".$zeile['id'].";\n"
. "\tliste3[$n][1]='".$zeile['hersteller']."';\n"
. "\tliste3[$n][2]=".$zeile['artikel'].";\n";
$n++;
}
?>
function update_select(strSelect, strListe, strQuelle) {
var x=document.frm_auswahl(strSelect).length;
for(var n=0; n<x; n++)
document.frm_auswahl(strSelect).options[0]=null;
for(n=0; n<eval(strListe).length; n++) {
if(eval(strListe)[n][2]==document.frm_auswahl(strQuelle).value) {
var NeuerEintrag=new Option(eval(strListe)[n][1], eval(strListe)[n][0]);
document.frm_auswahl(strSelect).options[document.frm_auswahl(strSelect).length]=NeuerEintrag;
}
}
}
-->
</script>
</head>
<body>
<form name="frm_auswahl" action="">
<select name="drp1" size="30" onChange="update_select('drp2', 'liste2', 'drp1')
;update_select('drp3', 'liste3', 'drp2')">
<?php
/* Verbindung aufbauen, auswählen einer Datenbank */
$link = mysql_connect("localhost", "root@localhost", "")
or die("Keine Verbindung möglich: " . mysql_error());
echo "";
mysql_select_db("patrick1") or die("Auswahl der Datenbank fehlgeschlagen");
$rs=mysql_query("select * from tbl_art_gruppen") or die(mysql_error());
while($zeile=mysql_fetch_assoc($rs)) {
echo "<option value=\"".$zeile['art_grp_id']
. "\">".$zeile['art_gruppe']."</option>\n";
}
?>
</select>
<select name="drp2" size="30" onChange="update_select('drp3', 'liste3', 'drp2')">
<option>Start</option>
</select>
<select name="drp3" size="30">
<option>Start</option>
</select>
</form>
<script type="text/javascript">
<!--
update_select('drp2', 'liste2', 'drp1');
update_select('drp3', 'liste3', 'drp2');
-->
</script>
</body>
</html>
# phpMyAdmin SQL Dump
# version 2.5.5-pl1
# http://www.phpmyadmin.net
#
# Host: 127.0.0.1
# Erstellungszeit: 25. März 2004 um 10:58
# Server Version: 4.0.17
# PHP-Version: 4.3.2
#
# Datenbank: `patrick1`
#
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `tbl_art_gruppen`
#
CREATE TABLE `tbl_art_gruppen` (
`art_grp_id` int(11) NOT NULL auto_increment,
`art_gruppe` varchar(30) NOT NULL default '',
PRIMARY KEY (`art_grp_id`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;
#
# Daten für Tabelle `tbl_art_gruppen`
#
INSERT INTO `tbl_art_gruppen` VALUES (1, 'Monitore');
INSERT INTO `tbl_art_gruppen` VALUES (2, 'Festplatten');
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `tbl_artikel`
#
CREATE TABLE `tbl_artikel` (
`art_id` int(11) NOT NULL auto_increment,
`art_bez` varchar(30) NOT NULL default '',
`art_grp` int(11) NOT NULL default '0',
PRIMARY KEY (`art_id`)
) TYPE=MyISAM AUTO_INCREMENT=8 ;
#
# Daten für Tabelle `tbl_artikel`
#
INSERT INTO `tbl_artikel` VALUES (1, '17 Zoll', 1);
INSERT INTO `tbl_artikel` VALUES (2, '19 Zoll', 1);
INSERT INTO `tbl_artikel` VALUES (3, '21 Zoll', 1);
INSERT INTO `tbl_artikel` VALUES (4, '80 GB', 2);
INSERT INTO `tbl_artikel` VALUES (5, '120 GB', 2);
INSERT INTO `tbl_artikel` VALUES (6, '160 GB', 2);
INSERT INTO `tbl_artikel` VALUES (7, '200 GB', 2);
# --------------------------------------------------------
#
# Tabellenstruktur für Tabelle `tbl_hersteller`
#
CREATE TABLE `tbl_hersteller` (
`id` int(11) NOT NULL auto_increment,
`hersteller` varchar(30) NOT NULL default '',
`artikel` int(11) NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=14 ;
#
# Daten für Tabelle `tbl_hersteller`
#
INSERT INTO `tbl_hersteller` VALUES (1, 'NoName', 1);
INSERT INTO `tbl_hersteller` VALUES (2, 'Siemens', 1);
INSERT INTO `tbl_hersteller` VALUES (3, 'NoName', 2);
INSERT INTO `tbl_hersteller` VALUES (4, 'Siemens', 2);
INSERT INTO `tbl_hersteller` VALUES (5, 'NoName', 3);
INSERT INTO `tbl_hersteller` VALUES (6, 'Eizo', 3);
INSERT INTO `tbl_hersteller` VALUES (7, 'WD', 4);
INSERT INTO `tbl_hersteller` VALUES (8, 'Seagate', 4);
INSERT INTO `tbl_hersteller` VALUES (9, 'Maxtor', 5);
INSERT INTO `tbl_hersteller` VALUES (10, 'IBM', 5);
INSERT INTO `tbl_hersteller` VALUES (11, 'Seagate', 6);
INSERT INTO `tbl_hersteller` VALUES (12, 'IBM', 6);
INSERT INTO `tbl_hersteller` VALUES (13, 'WD', 7);
Einen Kommentar schreiben: