honeybee
Goto Top

Kontaktformular: Ausgabe auf derselben Seite

Hallo,

meine eigene Webseite ist zu 90% fertig. Bin selber stolz darauf, da ich kein gelernter Webentwickler bin. Mache das eher hobbymäßig. face-smile

Das einzige, was mich an meiner Webseite stört, ist, dass wenn ich in einem Kontaktformular Daten absenden möchte, die Ausgabe der Meldung (ob erfolgreich oder fehlgeschlagen) nicht auf derselben Seite angezeigt wird, sondern auf einer neuen Seite.

Falls das für euch relevant ist: Die Hauptseite index.php wurde mit DIV-Boxen gestaltet. Die entsprechenden Seiten werden mit PHP inkludiert und in der Box "jsmain" angezeigt:
<div class="mainContent" id="jsmain">  
<?php include('html/start.html'); ?>  
</div>

Die Links wurden mit Javascript erstellt. Der Link für "Kontakt" sieht so aus:
<a href="javascript: void(0)" onclick="$('#jsmain').load('php/contact.php'); return false">Kontakt</a>  



Was muss ich tun, damit die Ausgabe auf derselben Seite angezeigt wird?

contact.php
<form id="contactform" method="post" action="./php/contact/sendmail.php">  
...
<input type="submit" name="submit" value="Absenden" style="width:100px;">  
<input type="reset" name="reset" value="Zurücksetzen" style="width:100px;">  
</form>

sendmail.php
?php
	if (isset($_POST['submit']))  
	{
		...
	}
	
	$mailsent = mail($mailto, $mailsubject, $mailcontent, "From: " . $mailfrom);  
	
	if($mailsent == TRUE)
	{
		include('thanks.php');  
	}
	else
	{
		include('error.php');  
	}
?>

thanks.php
<form id="contactform" method="post" action="./php/contact.php">  
<fieldset style="width:600px;">  
<legend><b>Vielen Dank</b></legend>
<br>
<p>Ihre Nachricht wurde erfolgreich versandt.</p>
<br>
</fieldset>
</form>

Content-Key: 350551

Url: https://administrator.de/contentid/350551

Printed on: April 24, 2024 at 01:04 o'clock

Member: falscher-sperrstatus
falscher-sperrstatus Sep 30, 2017 at 17:46:42 (UTC)
Goto Top
Link zur Seite?

Ich vermute aber, dass du die Seite einfach "erstellt" bzw "gekopierterstellt" hast, ohne nach zu denken. Denn ansonsten würde es dir klar sein, dass du den Code aus dem Formular, einfach an dasselbe Formular zurückgeben musst - Abfrage und Sache erledigt.

VG
Member: wiesi200
wiesi200 Sep 30, 2017 at 18:18:37 (UTC)
Goto Top
Hallo,

wie schon @certifiedit.net geschrieben musst du hier einfach im Formular durch "Post" die Formularseite einfach wieder selber aufrufen. Dort kannst du dann mit einer Abfrage deine E-Mail senden und entsprechend deine Information über den Erfolg entsprechend einbauen.

Alternativ kann man das auf über AJAX abbilden. Hier kann man das ganze ohne den "refresh" der Seite. Sieht Optisch schöner aus ist aber aufwendiger und JavaScript darf nicht blockiert sein.
Member: Sheogorath
Solution Sheogorath Oct 01, 2017 at 20:14:37 (UTC)
Goto Top
Moin,

wenn es dir um was einfaches geht was auch einigermaßen sicher ist, neige ich inzwischen dazu mir das PHP gefrickel zu sparen.

Gerade statische Webseiten die einfach nur einmalig generiert werden (mit hilfe von Tools wie Jekyll oder Hugo) will man für ein einfaches Kontaktformular nicht noch eine PHP engine hinten dran schrauben. Deshalb verwende ich da gerne mal formspree.

Ich würde jetzt keine Geschäftsdaten oder gar Bankdaten darüber austauschen, aber wenn es nur um den reinen Erstkontakt geht, einwandfrei.

Nur mal so eingeworfen.

Gruß
Chris