Hello,
also ich bin ein totaler php neuling
ich hab mir ein html formular gebaut das ich abschicke
"<form method="post" action="mail.php">"
es wird an die datei mail.php geschickt so wenn ich das form abschicke spring ich ja auf die mail.php gibt es eine möglichkeit die html seite nicht zuverlassen also zb ich schicke das form an die php und bekomm von der ein ergebnis wert zurueck zumbeispiel "email erfolgreich verschickt"
Die Formulierung "die HTML-Seite nicht verlassen" kann unterschiedlich aufgefasst werden.
Versuchen wie mal, vorne anzufangen:
In der Adressleiste Deines Browsers gibst Du eine URL/URi ein und lässt den Browser die Ressource laden. Er tut dies, indem er den Namen vom DNS auflösen lässt und dann einen GET-Request per HTTP an den Host absetzt, der der die Domain angeblich hostet.
Wenn dieser etwas damit anfangen kann, sendet er z.B. dein Mailformular als HTTP-Response zurück. Wenn alles normgerecht ist, kann nun das Formular angezeigt werden im Browser.
Du füllst das Formular aus, und klickst auf den "absenden"-Button. Da Du method="post" angegeben hast im <form>-Tag, führt der Browsser nun einen POST-Request aus. Die HTML-Seite im Browser wird üblicherweise nun noch solange angezeigt, bis eine Response vom Server kommt. Dann wird diese Response angezeigt im Browser, vorausgesetzt natürlich, dass das HTML valide oder zumindest interpretierbar ist.
Wenn Du nun willst, dass das Formular nochmals angezeigt wird, musst Du es einfach nochmals schicken lassen als HTML-Code. Wenn Du willst, dass etwas anderes angezeigt wird, musst Du den Server etwas anderes schicken lassen.
Um diese Entscheidungen nun zusammenzufassen in einem PHP-Script, musst Du nur alle Anforderungen auch an ein einziges Script schicken und diesem dann eine Fallunterscheidung einbauen, was gesendet werden soll.
Es bietet sich übrigens an, nicht jedes Zwischenergebnis sofort zu senden (mit echo auszugeben), sondern alle Ausgaben erst in einer Textvariable zu sammeln und die dann am Ende auszugeben.
Die Technik, immer wieder auf ein einziges Script zu requesten, findest Du hier im Forumsarchiv vielfach beschrieben, wenn Du mal das Suchwort "Affanformular" eingibst.
Es gibt, wie ich sagte, auch noch eine andere Interpretationsmöglichkeit für "die HTML-Seite nicht verlassen". Wenn die erste Response mit einem JavaScript ausgestattet ist, dass sich die AJAX-Technologie zunutze macht, dann kannst Du die Requests vom Brwoser auch "im Hintergrund" durchführen lassen. Die Response kommt dann auch "im Hintergrund" an, und löscht nicht Dein Formular im Browser. Durch die Verarbeitung der XMLHTTP-Response im Browser kann dieser dann an beliebigen Stellen im DOM Elemente einmfügen und/oder ersetzen. Damit sieht es dann so aus, als hättest Du eine Single-Machine-Application erstellt.
http://de.wikipedia.org/wiki/XMLHttpRequest
http://de.wikipedia.org/wiki/Ajax_(Programmierung)
Ich bin mir aber zu 90% sicher, dass Du es nicht so gemeint hattest :-))
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg