Foremulartechnik
Hendrik Kammholz
- programmiertechnik
0 andreas
Ich bin gerade dabei, mir die Grundlagen von PHP anzueignen. Beim Umgang mit Formularen stoße ich jedoch immer auf ein kleines Problem:
Ich möchte das Ergebnis einer beliebigen ‘Anfrage’ auf dem gleichen Formular erhalten, auf dem die Anfrage geschickt wurde.
Grundlegendes Beispiel:
Addition zweier Zahlen. HTML-Formularname = “Addi0.html”
Die beiden Summanden werden von einem User in die Textfelder mit den Namen ‘Summand1' und ‘Summand2' eingetippt. Das Ergebnis der Berechnung (Per Aufruf eines PHP-Programms namens ‘Addi1.php’ ermittelt) soll aber ebenfalls im Formular ‘Addi0.html’ augegeben werden.
Wie funktioniert das?
moin,
Die beiden Summanden werden von einem User in die Textfelder mit den Namen ‘Summand1' und ‘Summand2' eingetippt. Das Ergebnis der Berechnung (Per Aufruf eines PHP-Programms namens ‘Addi1.php’ ermittelt) soll aber ebenfalls im Formular ‘Addi0.html’ augegeben werden.
das geht leider nicht...
Wie funktioniert das?
wenn du das ergebnis eines formulars auf der gleichen datei ausgeben willst, brauchst du eine php-datei, die beides ausgeben kann. grundlegend macht die erstmal nichts anderes als zu testen 'wurde ich nach dem formular, oder vor dem formular aufgerufen'.
if(!isset($POST['irgendeineTestVariable']))
{
// ganz normale ausgabe deines formulars
}
else
{
// ausgabe des ergebnisses
}
da das in der regel bei der ausgabe/verarbeitung ein recht langer teil werden kann, der ebenfalls in der regel öfter als einmal gebracuht wird, würde ich das formular auf eine 'result.php' leiten. auf dieser machst du deine abfragen, auswertungen, sicherheitschecks. wenn alles ok ist, leitest du mit
header('Location:meineUrspruenglicheSeite.php');
wieder zurück auf deine formularseite. dein vorteil:
* von aussen merkt man diese resultseite nicht
* in der resultseite steht nur phpcode/logik (bessere trennung)
* du kannst die resultseite leicht auf andere formulare umbauen
* deine abfrage auf der formularseite ist einfacher, da du in der resultseite eine variable 'erfolgreicheAusgabe' setzt, auf die dann geprüft wird.
ich hoffe, dass hilft dir erstmal bei deinem grundlegendem problem.
beste grüsse,
andreas