Frage von mcchecker1000, 83

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

Hallo,

Ich hab eine HTML-Tabelle erstellt die in der letzen Spalte submits hat. Meine Frage ist wie krieg ich raus ob so ein submit gedrückt wurde und in welcher Zeile sich das submit befindet

Mein PHP ansatz ist so

if(isset($_POST['button']){
 und ab hier komm ich nicht weiter wie krieg ich jetzt raus welche Zeile der Button gedrückt wurde 
    }
Antwort
von maximilianus7, 50

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)

Antwort
von usberlin, 35

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;
Kommentar von usberlin ,

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.

Antwort
von mcchecker1000, 23

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'/>"
Antwort
von GoodbyeKitty1, 53

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

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

usw. geht super.

Kommentar von maximilianus7 ,

geht das so?: "Speichern"  ohne value=

Kommentar von usberlin ,

nö... da fehlt das value =

Kommentar von fluffiknuffi ,

Oh doch... testet diesen Code mal:

http://pastebin.com/0qC1Jfx9

Suprise, es geht, die inkorrekte Syntax wird vom Browser ignoriert, stattdessen ein Default-Wert für value gesetzt und abgeschickt.

Kommentar von GoodbyeKitty1 ,

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

Antwort
von happyfish2, 52

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.

Keine passende Antwort gefunden?

Fragen Sie die Community