Welcher Submit-Button wurde geklickt

Welcher Submit-Button wurde geklickt

am 31.08.2005 10:14:33 von Philip Seeger

Hallo,

wenn man Formulardaten an eine PHP-Datei übergibt, wie kann ich in dieser
dann herausfinden, welcher Submit-Button geklickt wurde (es gibt zwei mit
unterschiedlichen Namen)?

--
Philip Seeger

Re: Welcher Submit-Button wurde geklickt

am 31.08.2005 10:22:36 von Stephan Ramsauer

Hallo,

"Philip Seeger" schrieb im Newsbeitrag
news:df3otl$2jt7$1@ulysses.news.tiscali.de...
> Hallo,
>
> wenn man Formulardaten an eine PHP-Datei übergibt, wie kann ich in dieser
> dann herausfinden, welcher Submit-Button geklickt wurde (es gibt zwei mit
> unterschiedlichen Namen)?
>

....


....

....
if(isset($_POST["knopf1"])){
echo "knopf1";
}
if(isset($_POST["knopf2"])){
echo "knopf2";
}

Gruss Stepfan

Re: Welcher Submit-Button wurde geklickt

am 31.08.2005 10:53:50 von Benjamin Butschko

"Stephan Ramsauer" schrieb im Newsbeitrag news:df3pbu$kur$02$1@news.t-online.com...

>
>
> ...
>
> ...
> if(isset($_POST["knopf1"])){
> echo "knopf1";
> }
> if(isset($_POST["knopf2"])){
> echo "knopf2";
> }
>


ich würde es eher so schreiben:

if (isset($_POST['knopf1']))
{
echo 'Knopf1';
}
if (isset($_POST['knopf2']))
{
echo 'Knopf2';
}

Jedem das seine :-)

Gruß,
Ben

Re: Welcher Submit-Button wurde geklickt

am 31.08.2005 11:08:07 von Tobias Kutzler

Philip Seeger schrieb:
> Hallo,
>
> wenn man Formulardaten an eine PHP-Datei übergibt, wie kann ich in dieser
> dann herausfinden, welcher Submit-Button geklickt wurde (es gibt zwei mit
> unterschiedlichen Namen)?
>
Ich habe gehört, FAQ lesen bildet ungemein ;-)

11.16. Wie verarbeite ich mehrere Submit-Buttons?
http://www.php-faq.de/q/q-formular-buttons.html

Ciao,
Tobias

Re: Welcher Submit-Button wurde geklickt

am 31.08.2005 12:13:53 von Philipp Niethammer

Am Wed, 31 Aug 2005 10:53:50 +0200 schrieb Benjamin Butschko:


> ich würde es eher so schreiben:
>
> if (isset($_POST['knopf1']))
> {
> echo 'Knopf1';
> }
> if (isset($_POST['knopf2']))
> {
> echo 'Knopf2';
> }

if (!empty($_POST['knopf1']))
echo 'Knopf1';
elseif (!empty($_POST['knopf2']))
echo 'Knopf2';

Spart Zeit wegen dem elseif, empty wird oft als "sauberer" angesehen und
bei einem Befehl: Warum klammern?

> Jedem das meine :-)

Du hast völlig recht!

Gruß, Philipp

PS: Oops, jetzt ist mir doch beim Zitieren ein Fehler unterlaufen ;)

Re: Welcher Submit-Button wurde geklickt

am 31.08.2005 14:52:23 von Niels Braczek

Philipp Niethammer schrieb:
> Am Wed, 31 Aug 2005 10:53:50 +0200 schrieb Benjamin Butschko:
>
>> ich würde es eher so schreiben:
>>
>> if (isset($_POST['knopf1']))
>> {
>> echo 'Knopf1';
>> }
>> if (isset($_POST['knopf2']))
>> {
>> echo 'Knopf2';
>> }
>
> if (!empty($_POST['knopf1']))
> echo 'Knopf1';
> elseif (!empty($_POST['knopf2']))
> echo 'Knopf2';
>
> Spart Zeit wegen dem elseif, empty wird oft als "sauberer" angesehen und

Das ist nicht ganz dasselbe. In Benjamins Lösung könnten beide Variablen
gesetzt sein; du setzt voraus, dass definitiv nur eine davon gesetzt ist
und das mit einem Wert ungleich 0. Ergänzt man deinen Vorschlag um einen
else-Zweig, wird auch der Fall abgefangen, dass die Enter-Taste zum
Abschicken benutzt wurde:

if (isset($_POST['knopf1'])) {
echo 'Knopf1';
} elseif (isset($_POST['knopf2'])) {
echo 'Knopf2';
} else {
echo 'Enter';
}

> bei einem Befehl: Warum klammern?

Weil man evtl. mal einen Kommentar oder ein weiteres Statement einfügt.
Man klammert *immer*, wenn das if-Statement länger als eine Zeile ist.

MfG
Niels

--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · E-Commerce · Mambo Content Management |
`----------------------------------------------------------- -----´

Re: Welcher Submit-Button wurde geklickt

am 31.08.2005 15:36:49 von Gregor Kofler

Niels Braczek wrote:

> Ergänzt man deinen Vorschlag um einen
> else-Zweig, wird auch der Fall abgefangen, dass die Enter-Taste zum
> Abschicken benutzt wurde:
>
> if (isset($_POST['knopf1'])) {
> echo 'Knopf1';
> } elseif (isset($_POST['knopf2'])) {
> echo 'Knopf2';
> } else {
> echo 'Enter';
> }
Tatsächlich? Wird beim Enterdrücken nicht der Klick auf den "ersten"
Submit-Button angenommen (meine bisherige Erfahrungen und daraus
abgeleitete Annahme ging jedenfalls in diese Richtung)? Und wäre sowas
nicht auch vom Browser abhängig und somit nicht wirklich sinnvoll
auswertbar?

Gruß, Gregor


--
Landschafts- und Reisefotografie * http://www.gregorkofler.at
Licht-Blick - Forum für Multivisionsvorträge * http://licht-blick.at

Re: Welcher Submit-Button wurde geklickt

am 31.08.2005 17:05:31 von Niels Braczek

Gregor Kofler schrieb:
> Niels Braczek wrote:
>
>> Ergänzt man deinen Vorschlag um einen
>> else-Zweig, wird auch der Fall abgefangen, dass die Enter-Taste zum
>> Abschicken benutzt wurde:
>>
>> if (isset($_POST['knopf1'])) {
>> echo 'Knopf1';
>> } elseif (isset($_POST['knopf2'])) {
>> echo 'Knopf2';
>> } else {
>> echo 'Enter';
>> }

> Tatsächlich? Wird beim Enterdrücken nicht der Klick auf den "ersten"
> Submit-Button angenommen (meine bisherige Erfahrungen und daraus
> abgeleitete Annahme ging jedenfalls in diese Richtung)? Und wäre sowas
> nicht auch vom Browser abhängig und somit nicht wirklich sinnvoll
> auswertbar?

Ja, es ist vom Browser abhängig. Wenn bei Enter ein Submit-Button
angenommen wird, sollte das derjenige sein, der den Focus hat. Wenn kein
Submit-Button ausgewählt ist, ist das Verhalten undefiniert. Man sollte
diesen Fall zumindest berücksichtigen.

MfG
Niels

--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · E-Commerce · Mambo Content Management |
`----------------------------------------------------------- -----´

Re: Welcher Submit-Button wurde geklickt

am 31.08.2005 20:11:39 von Markus Malkusch

Gregor Kofler:

> Tatsächlich? Wird beim Enterdrücken nicht der Klick auf den "ersten"
> Submit-Button angenommen

Hmm, das würd' mich jetzt auch mal interessieren.

Das w3c sagt:

| If a form contains more than one submit button, only the activated submit
| button is successful.

"activated" heißt der benutzte Knopf. Beim Überfliegen habe ich nichts
gefunden was mir verrät welcher Knopf bei benutzt wird.

> Und wäre sowas nicht auch vom Browser abhängig und somit nicht wirklich
> sinnvoll auswertbar?

Dann ersetzt man einfach die vielen Submit-Knöpfe mit Radio-Knöpfe und
benutzt nur noch einen Submit-Knopf für den man sich nicht interessiert.
--
http://hommingberger-gepardenforelle.malkusch.de/
Bewahrt die Existenz der Hommingberger Gepardenforelle!

Re: Welcher Submit-Button wurde geklickt

am 31.08.2005 23:33:31 von Philipp Niethammer

Niels Braczek schrieb:
> Wenn bei Enter ein Submit-Button
> angenommen wird, sollte das derjenige sein, der den Focus hat. Wenn kein
> Submit-Button ausgewählt ist, ist das Verhalten undefiniert. Man sollte
> diesen Fall zumindest berücksichtigen.

Das heißt, man sollte mit Hilfe von JS einen Focus setzen? Damit ist das
Ergebnis aber nicht gerade das schönste HTML. Oder gibt's da andere
Methoden?

Philipp

Re: Welcher Submit-Button wurde geklickt

am 01.09.2005 04:08:40 von Niels Braczek

Philipp Niethammer schrieb:
> Niels Braczek schrieb:

>> Wenn bei Enter ein Submit-Button
>> angenommen wird, sollte das derjenige sein, der den Focus hat. Wenn kein
>> Submit-Button ausgewählt ist, ist das Verhalten undefiniert. Man sollte
>> diesen Fall zumindest berücksichtigen.
>
> Das heißt, man sollte mit Hilfe von JS einen Focus setzen? Damit ist das
> Ergebnis aber nicht gerade das schönste HTML. Oder gibt's da andere
> Methoden?

Unterm Strich heißt das wohl eher, dass die Information nicht
zuverlässig ist. Die einzige sichere Methode ist die Beschränkung auf
*einen* Submit-Button.

MfG
Niels

--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · E-Commerce · Mambo Content Management |
`----------------------------------------------------------- -----´

Re: Welcher Submit-Button wurde geklickt

am 10.09.2005 03:23:32 von so

Philipp Niethammer wrote:
>
> Spart Zeit wegen dem elseif, empty wird oft als "sauberer" angesehen und
> bei einem Befehl: Warum klammern?

Vieleicht wegen der besseren Übersicht? Egal. Ich bin ja für:



Sonnige Wochenendgrüße

sui