Brokiss
Grünschnabel
Hallo
ich habe eine Formular mit zwei abhängigen Auswahllisten.
Die Abhängigkeit habe ich mittels onchange und einer Javascript funktion gelöst.
Javascript:
die abhängigen Listen:
Nun wollte ich halt dass wenn man in der ersten Liste etwas auswählt und dann auf aktualisieren klickt das der ausgewählte Wert stehen bleibt.
Also habe ich die Auswahllisten wie folgt umgeschrieben:
Das funktioniert jetzt auch,allerdings wird jetzt meine zweite Auswahlliste nicht mehr gefüllt, so als ob das nicht als onchange erkannt wird.
Also hab ich versucht die Javascript Funktion im PHP teil aufzurufen, aber das klappt nicht!
Gibt es vielleicht irgendeine Möglichkeit das die Funktion ausgeführt wird, nach dem die erste Liste geändert wurde.
Ich wäre dankbar für Ratschläge.
ich habe eine Formular mit zwei abhängigen Auswahllisten.
Die Abhängigkeit habe ich mittels onchange und einer Javascript funktion gelöst.
Javascript:
HTML:
<script language="javascript" type="text/javascript">
<!--
var arrKat = new Array();
// Erste Komponente - Kategorie-ID ist Index
arrKat["1"] = new Array();
// Unterkategorien zur ersten Kategorie-ID
arrKat["1"][0] = "keine Auswahl moeglich";
// Zweite Komponente - Kategorie-ID ist Index
arrKat["2"] = new Array();
// Unterkategorien zur ersten Kategorie-ID
arrKat["2"][0] = "Hauptseite";
arrKat["2"][1] = "Werbung";
// Dritte Komponente - Kategorie-ID ist Index
arrKat["3"] = new Array();
// Unterkategorien zur ersten Kategorie-ID
arrKat["3"][0] = "Hauptseite";
arrKat["3"][1] = "Werbung1";
arrKat["3"][2] = "Werbung2";
function updateSub(objForm, strKey){
var objSelSub = objForm.Anzeigezone;
// Bestehende Liste löschen
objSelSub.options.length = 0;
// Falls der default-Zustand gewählt wird
if(strKey == "default") return;
// Unterkategorie-Array durchlaufen
for(var i=0; i<arrKat[strKey].length; i++){
// Neues Options-Objekt (value = Hauptkat_Unterkat)
//objOption = new Option(arrKat[strKey][i], (/*strKey+"_"+*/i), false, false);
objOption = new Option(arrKat[strKey][i], arrKat[strKey][i], false, false);
// Option in Liste einhängen
objSelSub.options[objSelSub.length] = objOption;
}
}
--> </script>
die abhängigen Listen:
HTML:
<select name="Aufteilung" size=1 onchange="updateSub(this.form, this.value)">
<option value="default">Bitte wählen</option>
<option value="1">1 Fenster</option>
<option value="2">2 Fenster</option>
<option value="3">3 Fenster</option>
</select>
<select name="Anzeigezone" size=1>
<option value="default">Bitte wählen</option>
</select>
Nun wollte ich halt dass wenn man in der ersten Liste etwas auswählt und dann auf aktualisieren klickt das der ausgewählte Wert stehen bleibt.
Also habe ich die Auswahllisten wie folgt umgeschrieben:
PHP:
<select name="Aufteilung" size=1 onchange="updateSub(this.form, this.value)">
<?php
if(isset($_POST['aktualisieren'])){
echo"<option value=\"$Aufteilung\">$Aufteilung Fenster</option>";
}else{
echo"<option value=\"default\">Bitte wählen</option>";
echo"<option value=\"1\">1 Fenster</option>";
echo"<option value=\"2\">2 Fenster</option>";
echo"<option value=\"3\">3 Fenster</option>";
}
?>
</select>
Das funktioniert jetzt auch,allerdings wird jetzt meine zweite Auswahlliste nicht mehr gefüllt, so als ob das nicht als onchange erkannt wird.
Also hab ich versucht die Javascript Funktion im PHP teil aufzurufen, aber das klappt nicht!
PHP:
<select name="Aufteilung" size=1 onchange="updateSub(this.form, this.value)">
<?php
if(isset($_POST['aktualisieren'])){
echo"<option value=\"$Aufteilung\">$Aufteilung Fenster</option>";
echo"<script>updateSub(this.form, this.value)</script>";
}else{
echo"<option value=\"default\">Bitte wählen</option>";
echo"<option value=\"1\">1 Fenster</option>";
echo"<option value=\"2\">2 Fenster</option>";
echo"<option value=\"3\">3 Fenster</option>";
}
?>
</select>
Gibt es vielleicht irgendeine Möglichkeit das die Funktion ausgeführt wird, nach dem die erste Liste geändert wurde.
Ich wäre dankbar für Ratschläge.