• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> 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");
}

?>
 

torben1

Celler Dickstiel
Registriert
05.08.08
Beiträge
797
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 ;)
 

.maxx

Auralia
Registriert
10.06.07
Beiträge
200
hi Torben,

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

torben1

Celler Dickstiel
Registriert
05.08.08
Beiträge
797
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
 

drp

Jerseymac
Registriert
12.04.11
Beiträge
458
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..
 

torben1

Celler Dickstiel
Registriert
05.08.08
Beiträge
797
Da er schon jQuery nutz reicht in diesem Fall schon ein

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