• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

[PHP] PHP Kontaktformular zur gesendet "Seite" mit Animation

.maxx

Auralia
Registriert
10.06.07
Beiträge
200
Tach zusammen,
so der Titel klingt ein wenig seltsam aber ich erklärs mal.

Meine Seite andreasmaks.de hat eine JS Animation beim Ankerwechsel.

Das Kontaktformular leitet mich auf die gesendet Seite weiter nach dem versendet wurde. Nun wäre es schön wenn dies mit der besagten JS animation geschehen würde. Also

Nachricht senden durch meine contact-form.php -> zurück zur Formularseite -> sofort Animation zur gesendet Seite.

Wie löst man das am besten?

Code:
<?php

$empfaenger = "[email protected]"; //hier kommt die email adresse hin, an die die mail geschickt wird
$absender = 'Kontaktformular - andreasmaks.de<[email protected]>';
$betreff = 'Nachricht ueber Webseite';

//bestimmen der eingabefelder
$field1 = $_POST["contactname"];
$field2 = $_POST["contactemail"];
$field14 = $_POST["contactmessage"];

//aussehen der email die an dich gesendet wird
$send = '
Name: '.$_POST["contactname"].'

Email: '.$_POST["contactemail"].'

'.$_POST["contactmessage"].'
        ';

$headers .= 'From:' . $absender;

//die sendefunktion
if  (mail($empfaenger, $betreff, $send, $headers))
    {
    header("Location: index.html#danke");
        }
        else
        {
       header("Location: index.html#danke");
}

?>
 
Warum machst Du das Ganze nicht mit AJAX? Damit hättest Du auch die Kontrolle über die Animation, da die Seite ja nicht verlassen wir. jQuery bietet da ja einfache Möglichkeiten.

Torben

P.S. Du solltest noch eine Fehlerseite bauen - Im Moment wird, wenn die Mail nicht versandt wurde, auch die Dankeseite gezeigt ;-)
 
hi Torben,

hast du für mich auch ein wenig Code, wie ich das z.B. mit AJAX bewerkstelligen könne?
 
Hallo .maxx,

ein Ajax-Request baust Du folgendermassen auf:
Code:
var getDaten = 'name=' + name + '&email=' + email; //usw.
$.ajax({
				url: "senden.php",
				type: "GET",
				data: getDaten,
				cache: false,
				success: function (html){
				if (html == 1){
					//Hat geklappt
					}
				else
					{
					//War wohl nix
					}
				}

Damit werden die Daten an die Datei senden.php gesandt. Dort kannst Du dann die Userdaten überprüfen(!) und die Email versenden. Dann brauchst Du im Erfolgsfall nur ein
Code:
echo "1";
ausgeben.

Torben
 
Und dann den Effekt einfach mit Scriptaculous machen. (Zum Beispiel:
Code:
Effect.Appear("erfolg", { duration: 1.0 } );
blendet den DIV mit der ID Erfolg ein.)

(du musst den natürlich vorher mit style="Display:None;" (!NICHT IN EINER CSS DATEI!) ausblenden und vorher die zwei Scriptaculous Bibliotheken mit
Code:
<script src="http://script.aculo.us/prototype.js" type="text/javascript"></script>
<script src="http://script.aculo.us/scriptaculous.js" type="text/javascript"></script>
(kommt in den Header))
.. Das mit effect.appear kommt dann bei dem //Hat geklappt im Ajax teil hin..
 
Da er schon jQuery nutz reicht in diesem Fall schon ein

Code:
$('#id').fadeIn('slow');
;-)