Abhängigkeit von Select Feldern! Hilfe

NoKz

Grünschnabel
Hallo

Ich habe mir schon mindestens 1 1/2 Tage den Kopf zerbrochen, warum folgendes nicht funktz und hoffe nun ihr könnt mir helfen. Folgendes ist gegeben:

*****EDIT******

Ich habe 2 Select Felder.
Das erste gibt die Kunden aus. Das funktioniert auch soweit.

Das zweite soll in Abhängigkeit dazu stehen. Also wenn ich einen Kunde mit der KundenID 1 auswähle, soll im zweiten nur die Klassen stehen, die dieser Kunde auch macht. (es geht um eine Fahrschuldatenbank)

Und dies soll sich jederzeit ändern lassen, wenn ich nen anderen Kunden auswähle.

*****EDIT*****


tblkunde
__________
KundenID
Name
Vorname
Strasse
PLZ
Ort
Telefonnummer
Geschlecht
Geburtsdatum



tblrechnung
__________
RechnungID
Klasse
KundenID



so jetzt mal meinen ganzen php code mit Javascript:

Code:
<?php 
  include ("funktionen.php");
  $db=mysql_connect("localhost","root","");
  mysql_select_db("Fahrschule");
?>
<html>
<head>
<script type="text/javascript">
<!--
<?php
// abhängiges Kombifeld erzeugen
    $rs=mysql_query("SELECT Klasse, KundenID FROM tblrechnung;");
    $rows=mysql_num_rows($rs);
    echo "\tvar liste2=new Array($rows)\n";
	echo "\tfor(var i=0;i<liste2.length;i++)\n";
    echo "\t\tliste2[i]=new Array(1);\n";
   $n=0;
   while($zeile=mysql_fetch_assoc($rs)) {
		echo "\tliste2[$n][0]=".$zeile['Klasse'].";\n"
		. "\tliste2[$n][1]=".$zeile['KundenID'].";\n";
        $n++;
    }
?>
function update_drp2() {
    var x=document.frm_auswahl.drp2.length;
    for(var n=0; n<x; n++)
        document.frm_auswahl.drp2.options[n]=null;
    for(n=0; n<liste2.length; n++) {
        if(liste2[n][1]==document.frm_auswahl.drp1.value)
		{
            var NeuerEintrag=new Option(liste2[n][0]);
            document.frm_auswhal.drp2.options[document.frm_auswahl.drp2.length]=NeuerEintrag;
        }
    }
}
-->
</script>
</head>

<body>
<form name="frm_auswahl">
   <select name="drp1" size="1" onChange="update_drp2()">
	<?php
        $rs=mysql_query("SELECT KundenID, Name, Vorname FROM tblkunde");
        while($zeile=mysql_fetch_assoc($rs))
		 {
            echo "<option value=\"".$zeile['KundenID']
            . "\">".$zeile['KundenID']." ".$zeile['Vorname']." ".$zeile['Name']."</option>\n";
        }
    ?>
  </select>

    <select name="drp2" size="1">
        <option selected name="Start">Start</option>
    </select>

</form>
<script type="text/javascript">
<!--
    update_drp2()
-->
</script>

</body>

</html>

Ich muss dazu sagen ich habe keine ahnung von Javascript und habe sogut wie möglich es versucht an meine Situation anzupassen.

Habe dieses als Vorlage genommen.
Hier Leider fängt es ja schon, das ich net weiß was \t macht.......\n ist nuee Zeile.....aber das wars auch schon mit solchen sachen.

Folgendes funktz: Die Ausgabe der Kunden funktz einwandfrei. Doch leider hab ich in dem abhängigen Select feld nie werte. Die tabelle Rechnung ist gefüllt!

Ich brauche dringend Hilfe. Bitte

MFG Nokz
 
Zuletzt bearbeitet:
Also so richtig habe ich Dein Problem nicht verstanden. Ich nehme aber mal an, dass Du ein dynamisches Listenfeld erstellen willst. Hier mal ein PHP-Beispiel dafür (habe es nur rauskopiert, dehalb als Tabelle):
PHP:
  echo"<tr> ";
 			echo"<td>Klasse</td>";
 			   echo "<td>";
 			 $abfrage=mysql_query("select tblrechnung.klasse, tblkunde.kundenid from tblkunde, tblrechnung ");
 			   echo"<select name=\"eintrag[]\" size=\"1\" >";
 			 echo "<option value=\"0\" selected>keine Auswahl</option>";
  			 while ($daten=mysql_fetch_row($abfrage)) {
 			 echo "<option value=\"$daten[1]\">$daten[0]</option>";
 				 }
 			   echo"  </select></td>";
 			echo"<td>&nbsp;</td>";
 		  echo" </tr>";
Falls das kein Tip für Dich war, dann ist villeicht das Javascript-Forum besser geeignet.

Viel Glück!
 
Hi Danke für die Antwort und den Hinweis, das ich mich wohl missverständlich ausgedrückt habe. Deswegen will ich es nochmal Probieren:

Ich habe 2 Select Felder.
Das erste gibt die Kunden aus. Das funktioniert auch soweit.

Das zweite soll in Abhängigkeit dazu stehen. Also wenn ich einen Kunde mit der KundenID 1 auswähle, soll im zweiten nur die Klassen stehen, die dieser Kunde auch macht. (es geht um eine Fahrschuldatenbank)

Und dies soll sich jederzeit ändern lassen, wenn ich nen anderen Kunden auswähle.
 
MMmhhhh, also so einfachist das mit PHP nicht umzusetzen. Ich bin aber auch noch nicht so lange dabei, deshalb einfach mal auch nach anderen Ratschlägen schauen.
1.) wenn es per Javascript programmiert werden soll, was hier sicherlich einfacher ist, dann schreibe mal Deine Frage ins Javascript-Forum
2.) falls es egal ist, werde ich mal mein bestes geben:

Du könntest z.B. das erste Select-Fenster per onclick wechseln, dann lädst Du die gleiche Seite nochmal, nur dass jetzt eine Variable übergeben wurde. Jetzt rufst Du die Variable ab und läßt das zweite Select-Feld nach dieser Variable erscheinen.

Hier brauchst Du zwar auch Javascript, aber nur eine Zeile ;)

Hier mal ein Beispiel als Kopie:
PHP:
      echo"<table width=\"80%\" border=\"0\" align=\"center\" cellspacing=\"1\" cellpadding=\"0\">";
      echo"<tr>";
      	
      	echo "<form action=\"\" method=\"get\">  ";
      	echo"<td width=\"30%\">Sie haben die Wahl zwischen folgenden Optionen: </td>";
 	echo"<td width=\"75%\"><select name=\"name_vom_selectfeld\" size=\"1\" onchange=\"window.location=('\index.php?bereich='+this.options[this.selectedIndex].value)\"> >";
  
   #hier müßtest du einschreiben, wo er anschließen hingehen soll: 
   #bei mir war es die indexseite und meine variable ist der bereich 
   #gewesen. kann aber auch index.php?variable= heißen >";
      	echo "<option value=\"schulungsverwaltung\" selected>keine Auswahl</option>";
     # hier bei value den wert der variablen angeben , bei mir sollte er die seite 
     #nochmal laden, wenn nix ausgewählt ist oder weiter, wenn was ausgewählt ist
 	echo "<option value=\"anlegenschulung\">	 	Anlegen einer neuen Schulung</option>";
      # hier wäre dann die weiterleitung zur nächsten seite, bei 
     #dir geht auch value=\"1\" oder irgend ein anderer wert
        
      	echo"  </select></td></form>";
      
      echo"<tr> </tr>";
      echo"</table>";
      
      #anschließend einfach eine  case anweisung, die den wert deine variablen abfragt und das zweite select-feld aufschreibt

Falls das was unklar ist, schreib einfach.
Viel Glück.....
 
Zurück