PHP Wie Funktion erst ausführen wenn Button geklickt wird?
Also:
<input type="submit" name="doit" value="Ausführen"/>
<?php
if(isset($_POST["doit"])) {
$statement = $pdo->prepare("UPDATE xyz SET xyz");
(ich habe jetzt hier nicht alles zum Updaten reingeschrieben, für die einfachheit)
}
?>
Also, jetzt wird immer beim aufrufen der Seite schon der UPDATE Befehl ausgeführt, ich will aber das er erst ausgeführt wird, wenn auf den Button geklickt wird.
Was muss ich ändern?
2 Antworten
Nur mit PHP kannst du keine (Click-)Events catchen
deshalb hat er ja das Isset, um beim nächsten Seitenaufruf mit dem Parameter den Code ausführen zu können. Das ist vom Prinzip her schon funktional.
Also dein rudimentärer Code ist vom Prinzip schon richtig und wenn du es so machst, wird dein UPDATE auch erst dann aufgerufen, wenn das Formular abgeschickt wurde.
Zeig doch mal den echten Code.
Was soll das hier sein?
if`($test) {
Das ` gehört da nicht hin und sollte zu einer Fehlermeldung führen.
Dein if (isset($_POST["doit"])) { ist aber erst mal korrekt und die Bedingung wird nur aufgerufen, wenn ein POST-Request mit doit aufgerufen wird.
Wenn dein UPDATE trotzdem aufgerufen wird, ist der Code nicht vollständig oder du rufst nicht die Datei auf, die du bearbeitest. Durch das ` sollte das Script nämlich gar nicht funktionieren.
Der ganze Code:
Beim Seitenaufruf wird das UPDATE trotzdem aufgerufen