Wie kriegt man mit PHP raus welcher button gedrückt wurde?

5 Antworten

Danke für die Antworten. Hab mittlerweile die Lösung gefunden. Meine Lösung ist das ich einen Zähler durchlaufen lasse und der Button dann eben den normalen namen hat + eine Zahl(siehe Code)

Danke für eure Antworten 

echo "<td> <input type='submit' name="."change".$id."value='button'/>"

du kannst alle buttons so definieren:

<input type="submit" name="button[]" value="Speichern">

in $_POST['button'] steht dann ein array. das sollte bis auf einen eintrag leer sein, der index (0-basiert!) entspricht der zeilennummer.
mit:

$idx = array_search('Speichern', $_POST['button']);

kannst du ihn herausfinden.
(achtung: $idx kann sowohl 0 also auch FALSE sein. vorsichtshalber mit

if ( $idx !== FALSE ) ... 

abfragen)

Wenn Du mehrere Submitbuttons die aber untesrchiedlich beschriftet sind kannst Du die ganz einfach abfragen:

Hier erstmal die Buttons im Dokument:

<input type="submit" name="submit" value="erster">
<input type="submit" name="submit" value="zweiter">

Dann im PHP Code der Seite an die die Form gesandt wird:

if (isset($_POST['submit'])) {$submit = $_POST['submit'];} else {$submit = "";} 

dann hast Du die Beschriftung des gedrückten Buttons in der Variable $submit:

echo $submit;

usberlin  14.01.2016, 11:07

Sollten Deine Buttons alle dieselbe Beschriftung haben, gibt es eine 2.Möglichkeit: Du vergibst dann den Buttons unterschiedliche Namen und liest alle Namen als Variablen ein, dalls nix gepostet wurde weist Du einen leeren String zu und guckst nachher, welcher String die Beschriftung enthält.

<input type="submit" name="submit1" value="Klick Mich">
<input type="submit" name="submit2" value="Klick mich">
if (isset($_POST['submit1'])) {$submit1 = $_POST['submit1'];} else {$submit1 = "";}if (isset($_POST['submit2'])) {$submit2 = $_POST['submit2'];} else {$submit2 = "";} 

Dann kannst gucken ob $submit1 das "Klick mich" enthält, oder $submit2 - der andere String ist jeweils leer.

0

Wenn sich die Buttons alle im gleichen Formular befinden ist es egal, da wird das ganze Formular übertragen. Wenn du für jede Zeile ein einzelnes Formular hast kannst du entsprechende Felder einfügen, die du dann abfragen kannst.

nenn eben nicht jeden submit-button "button" ;)

<input type="submit" name="submit1" "Speichern" />
<input type="submit" name="submit2" "Speichern2" />

usw. geht super.


maximilianus7  14.01.2016, 10:54

geht das so?: "Speichern"  ohne value=

0
GoodbyeKitty1  15.01.2016, 02:13
@fluffiknuffi

oops, eigentlich hatte ich wirklich "value=" vergessen - aber ging ja auch nur um die Idee dahinter ;)

0