Nachfrage bei Klick auf Submitbutton

Hallo zusammen,

bei Klick auf einem Submitbutton soll eine Nachfrage erfolgen, bevor der Code ausgeführt wird.

Es sind auf der Seite aber auch mehrere Submitbuttons vorhanden, wenn das für die Umsetzung entscheiden sein sollte.

Welcher Weg ist besser?

1.Über zwei Seiten wie folgt:

-nachdem Klick auf eine neue Seite verweisen
-auf dieser Seite erfolgt Nachfrage, ob Löschung erfolgen soll
-nach der Bestätigung die Ausgangseite aufrufen
-Code dort ausführen

2.Oder lässt sich das alles auch auf der Ausgangsseite sauber realisieren?

3.Oder gibt es eine noch bessere Umsetzung.

Für alle Wege soll ausschließlich PHP zum Einsatz kommen.

Gruß

Moin,

Es sind auf der Seite aber auch mehrere Submitbuttons
vorhanden, wenn das für die Umsetzung entscheiden sein sollte.

Dann brauchen die Submit-Buttons unterschiedliche Namen, damit man sie unterscheiden und prüfen kann, welcher gedrückt wurde.
Gib ihnen Namen und lass Dir im aufgerufenen Script dann mit print_r($_POST) (oder $_GET, wenn Du als Methode GET verwendest) ausgeben, welche Variablen gesetzt sind. Da erkennst Du dann auch Deine Submit-Buttons und wie Du sie abfragen musst.

Welcher Weg ist besser?

Also geht es um eine Löschbestätigung?

Löschen-Button -> ruft Script auf
Script sieht, dass der Löschen-Button gedrückt wurde -> gibt Abfrage Ja/Nein aus.
Benutzer klickt auf Ja oder Nein -> ruft Script auf
Script sieht, dass Ja oder Nein angeklickt wurde. Bei Nein wird wieder die Ausgangsseite angezeigt, bei Ja wird das eigentliche Löschen ausgeführt.

Das kann alles im selben Script erfolgen.

Freundliche Grüße,
-Efchen

Hallo und danke für die Antwort,

soweit ist das mir klar.

Aber eine Frage noch zu dem Script. Soll die Form, in der die Submitbuttons erscheinen, auf ein gesondertes Script verweisen (außerhalb der Seite) oder soll die Verarbeitung, Nachfrage und Löschung auf der gleichen Seite durchgeführt werden?

Ich vermute, dass es übersichtlicher ist die Form ein gesondertes Script aufrufen zu lassen.

Gruß

Moin,

Soll die Form, auf ein gesondertes Script verweisen
oder soll die Verarbeitung, Nachfrage
und Löschung auf der gleichen Seite durchgeführt werden?

Wie schon geschrieben, würde ich alles im selben Script machen.

Übersicht bringst Du rein, indem Du thematisch zusammengehörige Teile in unterschiedliche Dateien auslagerst, dort Funktionen baust und diese Dateien dann im Hauptscript nur noch includest. Im Hauptscript hast Du dann nur noch sprechende Funktionsaufrufe, die quasi eine Black Box darstellen, die es einfach für Dich macht, das Script mit einfachem Überfliegen gut zu verstehen.

Liebe Grüße,
-Efchen

Auch hilfreich ist die Verwendung von einer Templateengine. Dadurch kannst du Design und Logik voneinander trennen.

Dir auch ein freundliches Hallo,

Auch hilfreich ist die Verwendung von einer Templateengine.
Dadurch kannst du Design und Logik voneinander trennen.

Das geht auch ohne Templateengine. Sowas wird erst bei größeren Projekten sinnvoll. Über die Größe wurde ja nichts gesagt; genaugenommen kann das Projekt nicht sonderlich groß sein, so wie die Frage formuliert ist.

Grüße,
-Efchen

Vorschlag
Hallo nochmal,

also soweit habe ich das bisher programmiert.

Beispiel für die Abfrage des Buttons „Löschen“

<?php session_start(); <br />require "\_db.php";

if ($\_POST['ja']=="Ja")
{
echo $\_POST['ja']; 
}
else
{
echo $\_POST['nein'];
}


if ($\_POST['komplettloeschen'])
{
 ?\>

" method=„post“>

ACHTUNG!!! Es wird der Kunde mit allen eingegebenen Daten gelöscht!

Wollen Sie das wirklich?

<?php $mysqli->query($komplettloeschen); header("Location: [http://www.test.de/start.php"](http://www.test.de/start.php%22)); } ?\> Die Form " method="post"\> ... ... ... Ist das so eine saubere Sache oder geht es noch effektiver? Es gibt in diesem Projekt ca. 15 Seiten mit solchen Buttons. Ist es da noch immer ratsam alle Scripte für die Buttons auf der selben Seite zu lassen oder diese doch gesondert auf eine Seite zu legen? Gruß und Dank!

Moin,

Ist das so eine saubere Sache oder geht es noch effektiver?

Naja, der angezeigten Code funktioniert so halt nicht.
$_POST[„komplettloeschen“] wird ja nie gesetzt, denn im Formular unten heißt der Lösch-Button „loeschen“.
Aber vom Prinzip ist das sonst schon okay.

Es gibt in diesem Projekt ca. 15 Seiten mit solchen Buttons.
Ist es da noch immer ratsam alle Scripte für die Buttons auf
der selben Seite zu lassen oder diese doch gesondert auf eine
Seite zu legen?

Aktionen, die mehrfach vorkommen, sollte man natürlich auch nur einmal programmieren. Das lässt sich sicher durch irgendwelche Variablen-Übergaben oder über das Referrer-Script steuern, dass bei der Ja/Nein-Abfrage klar ist, wer sie aufgerufen hat.

Liebe Grüße,
-Efchen

Das geht auch ohne Templateengine. Sowas wird erst bei
größeren Projekten sinnvoll. Über die Größe wurde ja nichts
gesagt; genaugenommen kann das Projekt nicht sonderlich groß
sein, so wie die Frage formuliert ist.

Wirklich? Wie kann man Design und Code anders trennen? Würde mich persönlich jetzt auch interessieren.
Bei zwei drei Seiten lohnt sich der Aufwand wirklich nicht, aber ich finde auch kleinere Projekte sind mit Templates besser zu entwickeln.

OK! Dank!
Da hat sich noch ein Fehler in meinen Vorschlag eingeschlichen.

Freut mich, dass die Struktur soweit in Ordnung ist.

Gruß und Dank!

Wie kann man Design und Code anders trennen?

Welchen Code meinst Du denn?

Wenn man eine Website baut, dann aus HTML und CSS. Das eine ist für die Semantik zuständig, das andere für Aussehen und Design. Beides trennt man strikt voneinander, insb. durch externe Stylesheets.

Vielleicht meinst Du auch die Trennung einen Schritt weiter: Man baut sich (z.B.) eine HTML-Seite, die die Grundstruktur für den Inhalt festlegt und deren Aussehen mit einem externen Stylsheet definiert wird.
An den Stellen, wo wechselnder Inhalt hin soll, includet man einfach die gewünschten Dateien, die den Content enthalten. So hast Du auch schon ein primitives Templatesystem. Jemand hier im Forum sagte mal, dass eigentlich PHP selbst auch schon eine Art Template-System ist.

Liebe Grüße,
-Efchen

Welchen Code meinst Du denn?

Programmcode (Logik) von Darstellung (HTML, CSS)

Wenn man eine Website baut, dann aus HTML und CSS. Das eine
ist für die Semantik zuständig, das andere für Aussehen und
Design. Beides trennt man strikt voneinander, insb. durch
externe Stylesheets.

So soll es ja auch sein.

Vielleicht meinst Du auch die Trennung einen Schritt weiter:
Man baut sich (z.B.) eine HTML-Seite, die die Grundstruktur
für den Inhalt festlegt und deren Aussehen mit einem externen
Stylsheet definiert wird.
An den Stellen, wo wechselnder Inhalt hin soll, includet man
einfach die gewünschten Dateien, die den Content enthalten. So
hast Du auch schon ein primitives Templatesystem.

Hier ist natürlich die Frage, was ist wenn der dynamische Code z.B. in Tabellen dargestellt werden soll. Schreibst du dann in die Tabelle in den PHP Code? Hier liegt z.B. ein sehr offentsichtlicher Vorteil von Templates. Man kann die Tabelle im Template erstellen und später nur mit Daten füttern lassen. Die Engine kümmert sich um den Rest. Man kommt zwar nicht um etwas Logik rum, aber dafür hat z.B. Smarty etc auch ihre „foreach und if-else“-Anweisungen.

ich selbst nutze ganz gerne Smarty und habe mittlerweile eine von Smarty erbende Klasse erstellt, welche mir mein „Masterlayout“ aus verschiedenen Templates zusammen baut (Header, Footer, Menü etc)
Je nach Seite wird dann noch ein eigenes Template für den Content eingebunden. Die „extendedSmarty“-Klasse kann zwar noch etwas mehr, aber das ist jetzt nicht so wichtig.
Meine PHP Dateien erzeugen lediglich Daten und weisen diese der Engine zu, welche dann über Kontrollstrukturen den Inhalt ausgibt.
Kurz und knapp. in meinen PHP Dateien befindet sich kein bisschen HTML.

Die Einzige andere Möglichkeit wirklich Logik von Design zu Trennen wäre Model View Control (MVC)

Moin,

Hier ist natürlich die Frage, was ist wenn der dynamische Code
z.B. in Tabellen dargestellt werden soll. Schreibst du dann in
die Tabelle in den PHP Code?

Okay, jetzt weiß ich was Du meinst, und dann gebe ich Dir weitestgehend recht.
Wobei man natürlich nicht zwingend die Tabelle in den PHP-Code schreiben muss, sondern ja auch den PHP-Code in die Tabelle schreiben kann und dann sieht es wieder genauso aus, wie ein Template; effektiv ist dann PHP die Templatesprache.
Denn ob ich da %DataXYZ% stehen habe oder <?php print $DataXYZ; ?> ist ja eigentlich egal.

Kurz und knapp. in meinen PHP Dateien befindet sich kein
bisschen HTML.

Okay, das sieht bei mir bisher zugegebenermaßen anders aus :wink:

Liebe Grüße,
-Efchen