PHP + MySQL Button-Auswahl auf Datenbank speichern?
Hey,
ich würde gerne auf einer PHP-Seite vier Buttons haben. Wenn einer von diesen geklickt wird, soll auf der Datenbank angezeigt werden, welcher Button geklickt wurde. Ist das überhaupt möglich?
Ich würde mich über Hilfe freuen. ;)
2 Antworten
ich würde gerne auf einer PHP-Seite vier Buttons haben. Wenn einer von diesen geklickt wird, soll auf der Datenbank angezeigt werden, welcher Button geklickt wurde
<form>
<button name ="button" value="1">Button 1</button>
<button name ="button" value="2">Button 2</button>
<button name ="button" value="3">Button 3</button>
<button name ="button" value="4">Button 4</button>
</form>
In der Variable $_GET['button'] steht jetzt je nach gedrücktem Button der Wert 1, 2, 3 oder 4. Dementsprechend kannst Du dann einen Wert in die Datenbank schreiben:
<?php
switch($_GET['button'])
{
case 1:
/* hier schreiben, was bei Button 1 in die Datenbank geschrieben werden soll */
break;
case 2:
/* hier schreiben, was bei Button 2 in die Datenbank geschrieben werden soll */
break;
case 3:
/* hier schreiben, was bei Button 3 in die Datenbank geschrieben werden soll */
break;
case 4:
/* hier schreiben, was bei Button 4 in die Datenbank geschrieben werden soll */
break;
default:
/* hier schreiben, was sonst passieren soll */
break;
}
?>
Alex
Vielen Dank, hat mir echt sehr sehr viel weiter geholfen!
Genauso wie Eingabefeldern, kannst du auch Buttons mit einem name- und gegebenenfalls auch einem value-Attribut ausstatten. Das kann bei Klick auf den Button geschehen.
<form id="my-form">
<button>Button 1</button>
<button>Button 2</button>
</form>
<script>
const formButtons = document.querySelectorAll("#my-form > button");
for (let i = 0; i < formButtons.length; ++i) {
formButtons[i].addEventListener("click", function(e) {
this.name = "button_" + i;
});
}
</script>
Der versandte Key würde sich nach Versand des Formulars folgendermaßen in $_GET befinden.
Schau dir nochmal meinen Selektor an. Dieses Problem würde nur auftauchen, wenn man die gesetzte ID doppelt einsetzt, also fehlerhaftes Markup schreibt.
Dieses Problem würde nur auftauchen, wenn man die gesetzte ID doppelt einsetzt
Und da das nicht geht müsste man für jedes weitere verwendete Formular ein weiteres Script schreiben. Das macht das Ganze nicht wirklich übersichtlich.
Ein komplett neues Skript? Nein. Es gibt Funktionen oder man ändert den Query.
Es gibt Funktionen oder man ändert den Query.
Ja. Das wird dann eben mit jedem weiteren <form> unübersichtlicher.
Nein, eigentlich nicht. Statt der ID wird eine Klasse eingesetzt, der Query wird wie gesagt geändert.
die Lösung scheitert spätestens dann, wenn die Buttons Kindelemente unterschiedlicher <form> sind: