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
}
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;
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.
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.
Oh doch... testet diesen Code mal:
Suprise, es geht, die inkorrekte Syntax wird vom Browser ignoriert, stattdessen ein Default-Wert für value gesetzt und abgeschickt.
oops, eigentlich hatte ich wirklich "value=" vergessen - aber ging ja auch nur um die Idee dahinter ;)
geht das so?: "Speichern" ohne value=