Guten Tag
Ich möchte ein Formular bestehend aus mehreren Select-Feldern über ein Popup anpassen. Um dies zu realisieren, habe ich das Script "Neue Elemente in Auswahlliste einfügen" (http://de.selfhtml.org/javascript/objekte/options.htm#neue_elemente) abgeändert. Leider kommt nun immer die Fehlermeldung "upload_anlass1 is not defined". Hat jemand eine Idee, woran das liegen könnte?
Mein vereinfachter Code:
Formular im Hauptfenster:
<form name="fupload" method="post" action="index.php">
Modell:
<select name="upload_modell" onChange="popnewentry('<?php echo $cat; ?>',this.options[this.selectedIndex].value)">
<option value="1" selected>Wert 1</option>
<option value="2" selected>Wert 2</option>
</select>
Anlass 1:
<select name="upload_anlass1" onChange="popnewentry('<?php echo $cat; ?>',this.options[this.selectedIndex].value)">
<option value="neu">neu ...</option>
<option value="1" selected>Wert 1</option>
<option value="2" selected>Wert 2</option>
</select>
<input type="submit" name="upload_go" value="OK">
</form>
Die Funktion popnewentry sieht so aus:
<script language="JavaScript">
<!--
function popnewentry(cat,val) {
if (val == "neu")
{
var sURL = "includes/read_popup_new.php?cat=" + cat;
var sName = "pop_newentry";
var sOptions = "dependent=yes,left=100,top=200,scrollbars=yes,resizable=yes";
var sWidth = 495;
var sHeight = 625;
msg = window.open(sURL, sName, sOptions + ',width=' + sWidth + ',height=' + sHeight);
}
}
//-->
</script>
Im Popup hab ich dann ein Formular mit einem Textfeld, in welches ein neuer Eintrag eingegeben werden kann.
<input type="text" name="newentry">
Das Formular ruft sich selbst wieder auf und im Header checke ich mit PHP, ob der neue Eintrag sinn macht. Wenn ja, führe ich die folgende Funktion onload aus:
<script language="JavaScript">
<!--
function insert_newoption(newval, newid, fieldname) {
if (opener && opener.closed!=1) {
var newoption = new Option(newval, newid, false, true);
opener.document.fupload.fieldname.options[opener.document.fupload.fieldname.length] = newoption;
self.close();
}
}
//-->
</script>
<body onLoad="insert_newoption('<?php echo $newentry; ?>', '<?php echo $newid; ?>', <?php echo $fieldname; ?>)">
(wobei $newentry = Wert aus dem obigen Textfeld "newentry", $newid = value des neuen Eintrags (kommt aus MySQL) und $fieldname = Name der entsprechenden Select-Box, z.B. "upload_anlass1".
Wenn ich das dann ausprobiere, erhalte ich dann wie gesagt die Fehlermeldung "upload_anlass1 is not defined" oder "upload_modell is not defined" (je nach gewählter Select-Box).
In diesem Code steckt mein ganzes mageres Javascript-Wissen... Ich komm hier keinen Schritt mehr weiter und wäre unheimlich froh, wenn mir jemand helfen könnte!!!
Vielen Dank und lg, Michelle