Seite 1 von 1

Bei Dropdown-Menü Änderung automatisch senden

Verfasst: 08.02.2012 16:32
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

Re: Bei Dropdown-Menü Änderung automatisch senden

Verfasst: 08.02.2012 17:13
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.

Re: Bei Dropdown-Menü Änderung automatisch senden

Verfasst: 08.02.2012 17:46
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

Re: Bei Dropdown-Menü Änderung automatisch senden

Verfasst: 09.02.2012 00:15
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).

Re: Bei Dropdown-Menü Änderung automatisch senden

Verfasst: 24.02.2012 18:05
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