Bei Dropdown-Menü Änderung automatisch senden

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Maxe
Mitglied
Beiträge: 154
Registriert: 15.07.2006 00:17

Bei Dropdown-Menü Änderung automatisch senden

Beitrag von Maxe »

Hallo zusammen,

eigentlich müsste ich kurz vor der Lösung stehen, aber mir fehlt noch der entshceidente Tipp.

Ich habe aktuell ein Dropdown-Menü mit einem Absende-Knopf:

Code: Alles auswählen

<form name="foo" action="seite.html" method="post">
<select name="topic_info">
<option value="0">A</option>
<option selected="selected" value="1">B</option>
<option value="2">C</option>
</select>
<input type="submit" class="liteoption" value="Ändern" name="submit_status"/>
</form>
Dieses Menü möchte ich so verändern, dass es automatisch sendet bei einer Änderung der Auswahl.
Das geht mit dem Befehl:

Code: Alles auswählen

onChange="document.forms['foo'].submit()"
Also so:

Code: Alles auswählen

<form name="foo" action="seite.html" method="post">
<select name="topic_info" onChange="document.forms['foo'].submit()">
<option value="0">A</option>
<option selected="selected" value="1">B</option>
<option value="2">C</option>
</select>
</form>
Jedoch muss ich zwingend den Namen des entfernten input-Buttons mit übergeben.

Ich frage diesen an einer anderen Stelle wieder ab:

Code: Alles auswählen

isset($HTTP_POST_VARS['submit_status'])
Wie und wo muss ich das tun?

Danke Maxe
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12735
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Bei Dropdown-Menü Änderung automatisch senden

Beitrag von Pyramide »

Wenn es immer der selbe Button ist, kannst du diesen als hidden-Parameter übergeben. Du solltest den Button allerdings nicht komplett entfernen, damit auch Benutzer mit deaktiviertem Javascript das Formular benutzen können.
KB:knigge
Maxe
Mitglied
Beiträge: 154
Registriert: 15.07.2006 00:17

Re: Bei Dropdown-Menü Änderung automatisch senden

Beitrag von Maxe »

Hallo Pyramide,

vielen Dank für den Denkanstoß :-)

So sieht es nun aus und funktioniert:

Code: Alles auswählen

<form name="foo" action="seite.html" method="post">
<select name="topic_info" onChange="document.forms['foo'].submit()">
<option value="0">A</option>
<option selected="selected" value="1">B</option>
<option value="2">C</option>
</select>
<INPUT TYPE="hidden" NAME="submit_status">
<input type="submit" class="liteoption" value="Ändern" name="submit_status"/>
</form>
Dein Tipp mit Button stehen lassen finde ich auch gut, aber könnte man ihn nicht ausblenden wenn der User JS hat?
Geht das so ohne weiteres?

Grüße Maxe
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9295
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Bei Dropdown-Menü Änderung automatisch senden

Beitrag von gn#36 »

Du könntest per JavaScript einfach die Css Eigenschaft display auf "none" setzen. Das wird dann bei Benutzern ohne JS nicht ausgeführt.

Also in etwa <element>.style.display = none. Den Code kannst du dann einfach beim Laden der Seite ausführen (muss natürlich nach dem Formular ausgeführt werden).
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Maxe
Mitglied
Beiträge: 154
Registriert: 15.07.2006 00:17

Re: Bei Dropdown-Menü Änderung automatisch senden

Beitrag von Maxe »

Hallo gn#36,

ich hab noch eine viel einfachere Lösung gefunden:

Code: Alles auswählen

<noscript><input type="submit" class="liteoption" value="Ändern" name="submit_status"/></noscript>
Und fertig :-)

Danke und viele Grüße,
Maxe
Antworten

Zurück zu „Coding & Technik“