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![]()
Ergebnis 1 bis 6 von 6
- 12.05.2011, 08:57 #1
PHP Kontaktformular zur gesendet "Seite" mit Animation
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 = "max@mustermann.de"; //hier kommt die email adresse hin, an die die mail geschickt wird $absender = 'Kontaktformular - andreasmaks.de<max@mustermann.de>'; $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"); } ?>
- 12.05.2011, 09:14 #2
- 12.05.2011, 09:15 #3
hi Torben,
hast du für mich auch ein wenig Code, wie ich das z.B. mit AJAX bewerkstelligen könne?
- 12.05.2011, 09:45 #4
Hallo .maxx,
ein Ajax-Request baust Du folgendermassen auf:
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 einCode: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 } }ausgeben.Code:echo "1";
Torben
- 16.05.2011, 14:07 #5
Und dann den Effekt einfach mit Scriptaculous machen. (Zum Beispiel:
blendet den DIV mit der ID Erfolg ein.)Code:Effect.Appear("erfolg", { duration: 1.0 } );
(du musst den natürlich vorher mit style="Display:None;" (!NICHT IN EINER CSS DATEI!) ausblenden und vorher die zwei Scriptaculous Bibliotheken mit
(kommt in den Header))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>
.. Das mit effect.appear kommt dann bei dem //Hat geklappt im Ajax teil hin..Viele Grüße von DRP - Homepage
MacBook Air 11,6" | iPhone 3GS 8GB | iPad 2 16GB weiß Wi-Fi | Magic Mouse | PC
- 16.05.2011, 15:07 #6
Da er schon jQuery nutz reicht in diesem Fall schon ein
Code:$('#id').fadeIn('slow');


Zitieren

