online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon Pagestylist vom 01.03.2019, 20:44 Options

Problem mit einem von JavaScript generierten Select-Feld

Hallo, habe folgendes Problem, ich generiere mit JavaScript ein dynamisches Selectfeld. Die Funktion dazu:

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;
}

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:

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">&nbsp;</td>
<td width="120">&nbsp;</td>
</tr>
<tr>
<td>Hausnr:</td>
<td align="center"><input class="form-input" type="text" name="street_no" value="<?=$row['street_no']?>"></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Plz:</td>
<td align="center"><input class="form-input" type="text" name="plz" value="<?=$row['plz']?>"></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>Wohnort:</td><td align="center">
<input class="form-input" type="text" name="town" value="<?=$row['town']?>"></td>
<td>&nbsp;</td><td>&nbsp;</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>&nbsp;</td>
<td>&nbsp;</td></tr>
<tr><td>Bundesland / Kanton:</td>
<td align="center">
<select class="form-input" name="bland">
<option>--Bitte auswählen--</option>
</select>
</td>
<td>&nbsp;</td><td>&nbsp;</td>
</tr><tr>
<td>&nbsp;</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>&nbsp;</td>
<td>&nbsp;</td>
</tr></table></form>

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 schreiben

Antwort 1 von rfb vom 01.03.2019, 22:00 Options

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 vom 02.03.2019, 10:13 Options

So hier mal ganzer HTML_CODE

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 vom 02.03.2019, 10:33 Options

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

Antwort 4 von Pagestylist vom 02.03.2019, 10:43 Options

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


// 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 vom 02.03.2019, 12:58 Options

wenn ich mich recht entsinen ist in
Zitat:
new Option((beschriftung[kategorie])[j], "")
das 2te Argument der
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]
ab

Antwort 6 von Pagestylist vom 02.03.2019, 13:05 Options

aber selbst wenn ich i in den zweiten Teil einsetze ist der value leer :(

Antwort 7 von rfb vom 02.03.2019, 13:41 Options

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:

<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[i] = 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 vom 02.03.2019, 19:22 Options

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

Ähnliche Themen

Benutzer nach PHP LDAP Abfrage sortieren
Bruno_Bayano  04.05.2007 - 154 Hits - 3 Antworten

Value von einem Formularfeld auf das andere
ViciousCabaret  31.07.2007 - 17 Hits - 1 Antwort

Oracle SELECT Problem
dan_duesseldorf  29.11.2007 - 102 Hits - 1 Antwort

sql -> update mit select in einem select
lorenz6665  02.12.2007 - 114 Hits -

rechne wenn
Ghira  26.01.2008 - 57 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026