Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Problem mit einem von JavaScript generierten Select-Feld
Frage
Hallo, habe folgendes Problem, ich generiere mit JavaScript ein dynamisches Selectfeld. Die Funktion dazu:
[code]
var bl_id = new Array(
new Array(""),
new Array("0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16"),
new Array("0","1","2","3","4","5","6","7","8","9"),
new Array("0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26")
);
var beschriftung = new Array(
new Array("--Bitte auswählen--"),
new Array("--Bitte auswählen--","Baden-Württemberg","Bayern","Berlin","Brandenburg","Bremen","Hamburg","Hessen","Mecklenburg-Vorpommern","Niedersachsen","Nordrhein-Westfalen","Rheinland-Pfalz","Saarland","Sachsen","Sachsen-Anhalt","Schlesswig-Holstein","Thüringen"),
new Array("--Bitte auswählen--","Burgenland","Kärnten","Niederösterreich","Oberösterreich","Salzburg","Steiermark","Tirol","Vorarlberg","Wien"),
new Array("--Bitte auswählen--","Aargau","Appenzell-Ausserhoden","Appenzell-Innerhoden","Basel-Stadt","Basel-Lamdschaft","Bern","Genf","Glarus","Graubünden","Freiburg","Jura","Luzern","Neuenburg","Nidwalden","Obwalden","Schaffhausen","Schwyz","Solothum","St. Gallen","Tessin","Thurgau","Uri","Waadt","Wallis","Zug","Zürich")
);
function land_anzeigen(f,x) {
var kategorie = f.land.selectedIndex;
f.bland.options.length = 0;
for (var i=0; i<bl_id[kategorie].length; i++) {
f.bland.options[i] = new Option((beschriftung[kategorie])[i], "");
}
f.bland.selectedIndex = x;
}
[/code]
Aber nach dem Absenden des Formulars ist in PHP die Variable $HTTP_POST_VARS[‚bland’] leer, normalerweise wäre das ja der Value des selektierten Wertes oder???
Hier das Formular:
[code]
echo "<form action=\""._URL."umg/editprofil/edPr-contactdaten-dbupdate.php\" method=\"post\" name=\"ed_pr_contact_form\">\n";
?>
<table border="0" cellpadding="0" cellspacing="0" width="520">
<tr>
<td width="150">Straße:</td>
<td width="230" align="center">
<input class="form-input" type="text" name="street" value="<?=$row['street']?>"></td>
<td width="20"> </td>
<td width="120"> </td>
</tr>
<tr>
<td>Hausnr:</td>
<td align="center"><input class="form-input" type="text" name="street_no" value="<?=$row['street_no']?>"></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Plz:</td>
<td align="center"><input class="form-input" type="text" name="plz" value="<?=$row['plz']?>"></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Wohnort:</td><td align="center">
<input class="form-input" type="text" name="town" value="<?=$row['town']?>"></td>
<td> </td><td> </td>
</tr><tr>
<td>Land:</td>
<td align="center">
<?php
echo "<select class=\"form-input\" name=\"land\" onChange=\"land_anzeigen(this.form,".$row['land'].");\">\n";
echo "<option value=\"0\" ".dP24_selected("0",$row['land'],"1").">--Bitte auswählen--</option>\n";
echo "<option value=\"1\" ".dP24_selected("1",$row['land'],"0").">Deutschland</option>\n";
echo "<option value=\"2\" ".dP24_selected("2",$row['land'],"0").">Österreich</option>\n";
echo "<option value=\"3\" ".dP24_selected("3",$row['land'],"0").">Schweiz</option>\n";
?>
</select></td>
<td> </td>
<td> </td></tr>
<tr><td>Bundesland / Kanton:</td>
<td align="center">
<select class="form-input" name="bland">
<option>--Bitte auswählen--</option>
</select>
</td>
<td> </td><td> </td>
</tr><tr>
<td> </td>
<td align="center">
<input onclick="formcheck();" class="form-button" name="send" type="submit" value="Ändern" />
<input class="form-button" name="" type="reset" />
</td>
<td> </td>
<td> </td>
</tr></table></form>
[/code]
Wie bekomm ich nun den Value von dem bland-SelectFeld auf die andere HTML-Seite
Über eure Hilfe wäre ich euch sehr dankbar.
Gruß Chris
Antwort 1 von rfb
Es wäre vermutlich einfacher das herauszufinden, wenn du fertigen HTML- und JavaScript-Quellcode statt PHP-Quelltext posten würdest. Woher soll ich jetzt wissen was in den PHP-variablen steckt?
Antwort 2 von Pagestylist
So hier mal ganzer HTML_CODE
Ich hoffe ihr kommt damit klar
Und die JavaScript Funktion steht ja schon im oberen Beitrag
Ich hoffe ihr kommt damit klar
<html>
<head>
<script src="http://localhost/own/das-pferd24/umg/editprofil/bl-select.js" type="text/javascript"></script>
</head>
<body onload="land_anzeigen(document.forms['ed_pr_contact_form'],0);">
<form action="http://localhost/own/das-pferd24/umg/editprofil/edPr-contactdaten-dbupdate.php" method="post" name="ed_pr_contact_form">
<select name="land" onChange="land_anzeigen(this.form,1);">
<option value="0" >--Bitte auswählen--</option>
<option value="1" selected>Deutschland</option>
<option value="2" >Österreich</option>
<option value="3" >Schweiz</option>
</select>
<select name="bland">
<option>--Bitte auswählen--</option>
</select>
<input name="send" type="submit" value="Ändern" />
<input name="" type="reset" />
</form>
</body>
</html>
Und die JavaScript Funktion steht ja schon im oberen Beitrag
Antwort 3 von rfb
könntest du die JavaScript-Funktion trotzdem nochmals posten.
Du weißt das i in eckigen Klammern hier als italic eusgewertet wird?
Daher weiß ich jetzt nicht wo du das als Index verwendet hast.
Nimm einfach einen anderen Buchstaben als i, u oder b als Index, dann wirds deutlicher.
Du könntest übrigens mal testweise die übergebenen Parameter im PHP testen analog zu diesem Formmailerscript, das einfach alles ausliest, was ankommt: SelfHTML: einfacher Formmailer
Du weißt das i in eckigen Klammern hier als italic eusgewertet wird?
Daher weiß ich jetzt nicht wo du das als Index verwendet hast.
Nimm einfach einen anderen Buchstaben als i, u oder b als Index, dann wirds deutlicher.
Du könntest übrigens mal testweise die übergebenen Parameter im PHP testen analog zu diesem Formmailerscript, das einfach alles ausliest, was ankommt: SelfHTML: einfacher Formmailer
Antwort 4 von Pagestylist
Ja also ich lass das ja nach dem Absenden alles in eine DB eintragen und da ist dann alles so komplett außer die "bland"-Variable
Hier mal die PHP Query
// JavaScript Document
var bl_id = new Array(
new Array(""),
new Array("0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16"),
new Array("0","1","2","3","4","5","6","7","8","9"),
new Array("0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26")
);
var beschriftung = new Array(
new Array("--Bitte auswählen--"),
new Array("--Bitte auswählen--","Baden-Württemberg","Bayern","Berlin","Brandenburg","Bremen","Hamburg","Hessen","Mecklenburg-Vorpommern","Niedersachsen","Nordrhein-Westfalen","Rheinland-Pfalz","Saarland","Sachsen","Sachsen-Anhalt","Schlesswig-Holstein","Thüringen"),
new Array("--Bitte auswählen--","Burgenland","Kärnten","Niederösterreich","Oberösterreich","Salzburg","Steiermark","Tirol","Vorarlberg","Wien"),
new Array("--Bitte auswählen--","Aargau","Appenzell-Ausserhoden","Appenzell-Innerhoden","Basel-Stadt","Basel-Lamdschaft","Bern","Genf","Glarus","Graubünden","Freiburg","Jura","Luzern","Neuenburg","Nidwalden","Obwalden","Schaffhausen","Schwyz","Solothum","St. Gallen","Tessin","Thurgau","Uri","Waadt","Wallis","Zug","Zürich")
);
function land_anzeigen(f,x) {
var kategorie = f.land.selectedIndex;
f.bland.options.length = 0;
for (var i=0; i<bl_id[kategorie].length; i++) {
f.bland.options[j] = new Option((beschriftung[kategorie])[j], "");
}
f.bland.selectedIndex = x;
}
Hier mal die PHP Query
UPDATE dp24_reguser_data SET street = 'Ernststraße', street_no = '27', plz = '42117', town = 'Wuppertal', land = '1', bland = '' WHERE nickname = 'Webmaster'Antwort 5 von rfb
wenn ich mich recht entsinen ist in
PS: die Kalmmer um
ist meiner erfahrung nach überflüssig, ich frage mehrdimensionale Arrays mit
Zitat:
new Option((beschriftung[kategorie])[j], "")
das 2te Argument der new Option((beschriftung[kategorie])[j], "")
value, da der hier scheinbar generell auf "" gesetzt wird, wäre dann das übertragene Ergebnis bland="" absolut korrekt.PS: die Kalmmer um
(beschriftung[kategorie])[j]ist meiner erfahrung nach überflüssig, ich frage mehrdimensionale Arrays mit
beschriftung[kategorie][j] abAntwort 6 von Pagestylist
aber selbst wenn ich i in den zweiten Teil einsetze ist der value leer :(
Antwort 7 von rfb
ich habs eben mal mit der Methode "get" getestet (ist einfacher zu kontrollieren) und dabei value jeweils auf den index gesetzt -> wurde korrekt übertragen:
Zum Vergleich mein Code:
Zum Vergleich mein Code:
<html>
<head>
<script type="text/javascript">
var bl_id = new Array(
new Array(""),
new Array("0...);
var beschriftung = new Array(
...);
function land_anzeigen(f,x) {
var kategorie = f.land.selectedIndex;
f.bland.options.length = 0;
for (var j=0; j<bl_id[kategorie].length; j++) {
f.bland.options = new Option(beschriftung[kategorie][j], j);
}
f.bland.selectedIndex = x;
}
</script>
</head>
<body onload="land_anzeigen(document.forms['ed_pr_contact_form'],0);">
<form action="Untitled2.htm" method="get" name="ed_pr_contact_form">
<select name="land" onChange="land_anzeigen(this.form,1);">
<option value="0" >--Bitte auswählen--</option>
<option value="1" selected>Deutschland</option>
<option value="2" >Österreich</option>
<option value="3" >Schweiz</option>
</select>
<select name="bland">
<option>--Bitte auswählen--</option>
</select>
<input name="send" type="submit" value="Senden" />
</form>
</body>
</html>Antwort 8 von Pagestylist
hmmmm :(
schon doof das ganze nun funktioniert das bei mir auch, sicher wegen irgend einem Leerzeichen dazwischen JavaScript is schon pingelich ^^
danke für deine Hilfe
schon doof das ganze nun funktioniert das bei mir auch, sicher wegen irgend einem Leerzeichen dazwischen JavaScript is schon pingelich ^^
danke für deine Hilfe

