Formular abschicken bei onchange

frankys9

Mitglied
Hallo Leute,

ist es möglich ein Formular bei onchange incl. aller ausgefüllten Daten abzuschicken und zusätzlich einen Parameter an die URL anzuhängen

Also in etwa so:

PHP:
<select id="mySelectLand" onchange="<?php Post und übergib?type=select ?>"> 
<option value="e" <?php if ($_POST['mySelectLand'] == "e") {echo "selected='selected'";} ?>>Bitte auswählen</option> 
<option value="f" <?php if ($_POST['mySelectLand'] == "f") {echo "selected='selected'";} ?>>Deutschland</option> 
<option value="g" <?php if ($_POST['mySelectLand'] == "g") {echo "selected='selected'";} ?>>Spanien</option> 
<option value="h" <?php if ($_POST['mySelectLand'] == "h") {echo "selected='selected'";} ?>>Österreich</option> 
</select>


Das würde mir einiges an Arbeit erspaaren.

Kann mir jemand sagen ob und wenn ja wie es Funktionieren könnte

Vielen Dank
Frank
 
Ja es ist möglich, allerdings nicht mit PHP. Denn PHP ist – im Gegensatz zu etwa JavaScript – eine serverseitige und keine clientseitige Skriptsprache.

Probier mal Folgendes:
PHP:
<form action="?type=select" method="post" id="foobar">
	<select id="mySelectLand" onchange="document.getElementById('foobar').submit()">
		<option value="e" <?php if ($_POST['mySelectLand'] == "e") {echo "selected='selected'";} ?>>Bitte auswählen</option>
		<option value="f" <?php if ($_POST['mySelectLand'] == "f") {echo "selected='selected'";} ?>>Deutschland</option>
		<option value="g" <?php if ($_POST['mySelectLand'] == "g") {echo "selected='selected'";} ?>>Spanien</option>
		<option value="h" <?php if ($_POST['mySelectLand'] == "h") {echo "selected='selected'";} ?>>Österreich</option>
	</select>
</form>
 
Hallo Gumbo,

das ist natürlich weniger schön. Dann werde ich wohl mein Formular doch anders gestalten müssen, da JavaScript Clientseitig deaktiviert werden kann und das Formular auch dann funktionieren muss.

Vielen Dank erstmal.
Frank


PS. Eine andere Möglichkeit ohne JavaScript ist auch dir sicher nicht bekannt, oder?
 
Du kannst das Formular nur mit JS abschicken, wenn es nach einer Änderung ohne klick auf den Button fort sein soll. Aber du könntest z.B. mit dem Tag <noscript> einen Button einblenden, wenn JS deaktiviert ist.
 
Hallo fanste,

das ist eine gute Idee!!
Allerdings stellt sich mir da gleich die nächste Frage.

Wenn ich nun den noscript tag verwende und bei deaktiviertem JS der User dann den Button eingeblendet bekommt kann ich den speziell in meinem Formular nicht einfach als type="submit" deklarieren, da dann meine anderen Funktionen ausserkraft gesetzt werden und bei einem type="button" muss man doch auch auf die JS Geschichten zurrückgreifen (also onclick), oder irre ich mich da?

Hallo Gumbo,

Gumbo hat gesagt.:
Das Problem ist, dass die Werte der eingebetteten Ereignisattribute auch nur als clientseitige Skript-Daten behandelt werden.

Hier kann ich dir nicht ganz folgen. Kannst du mir etwas genauer erklären was du damit meinst?

Frank
 
Zuletzt bearbeitet:
Wiso solltest du dem Button nicht den Typen 'submit' zuordnen können? Natürlich geht das. Du kannst so viele Buttons des Types 'submit' in ein Formular hauen, dass dir schon schlecht dabei werden kann ;).
Wenn du den Buttons dann noch andere NAMEN zuordnest, kannst du auf der nächsten Seite auch darauf reagieren. Bei dem namen name1 machst du dass, bei dem Namen name2 machst du das, usw.
 
Zurück