Kennt jemand ein gutes Ajax Form Script, welches ich in meinem Content einbauen kann?
Formmailer
-
-
Hm, nein
aber hier ist ein Script um alle Elemente eines Formulars zu verschicken.
Wenig Scripting Aufwand: [coderwiki]HowTos/JavaScript-Alle-Formularelemente-verarbeiten[/coderwiki] -
Das habe ich mir schon gedacht...
-
Dafür solltest du entweder die Funktion mail() (http://de.php.net/manual/de/function.mail.php) benutzen,
oder aber du benutzt den Webmailer ([wiki]Webmailer mit PHP[/wiki]).Für jeden Autofahrer bussgeldkataloge.eu -
Nun bin ich soweit.
Ich habe alle Komponenten zusammen.
Eine Validierung die Highlightet...
Quellcode
- <?
- function error_bool($error, $field) {
- if($error[$field]) {
- print("<td style=color:red>");
- }
- else {
- print("<td>");
- }
- }
- function show_form() {
- global $HTTP_POST_VARS, $print_again, $error;
- ?>
- <form action="" method="post">
- <table width="400" border="1" cellspacing="0" cellpadding="0">
- <tr>
- <?php error_bool($error, "name"); ?> Name </td>
- <td><input name="name" type="text" id="name" value="<? echo $_POST["name"]; ?>"></td>
- </tr>
- <tr>
- <?php error_bool($error, "email"); ?> Email </td>
- <td><input name="email" type="text" id="email" value="<? echo $_POST["email"]; ?>"></td>
- </tr>
- <tr>
- <td><input type="submit" name="Submit" value="Submit"></td>
- <td> </td>
- </tr>
- </table>
- </form>
- <?
- }
- if(isset($_POST["Submit"])) {
- check_form();
- } else {
- show_form();
- }
- function check_email_address($email) {
- // First, we check that there's one @ symbol, and that the lengths are right
- if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
- // Email invalid because wrong number of characters in one section, or wrong number of @ symbols.
- return false;
- }
- // Split it into sections to make life easier
- $email_array = explode("@", $email);
- $local_array = explode(".", $email_array[0]);
- for ($i = 0; $i < sizeof($local_array); $i++) {
- if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i])) {
- return false;
- }
- }
- if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) { // Check if domain is IP. If not, it should be valid domain name
- $domain_array = explode(".", $email_array[1]);
- if (sizeof($domain_array) < 2) {
- return false; // Not enough parts to domain
- }
- for ($i = 0; $i < sizeof($domain_array); $i++) {
- if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) {
- return false;
- }
- }
- }
- return true;
- }
- function check_form()
- {
- global $HTTP_POST_VARS, $error, $print_again;
- $error['name'] = false;
- if($_POST["name"]=="") {
- $error['name'] = true;
- $print_again = true;
- $message="The name field is empty<br>";
- }
- if(!check_email_address($_POST['email'])) {
- $error['email'] = true;
- $print_again = true;
- $message.="Either Field Empty or Invalid Email ID <br>";
- }
- if($print_again) {
- show_form();
- } else {
- show_form();
- $message="All Fields are valid <br>
- Now, In this way you can validate the other textfield as well<br>
- You can insert data into table";
- }
- echo "$message";
- }
- ?>
Doch nun, wie baue ich die mail() Angaben darin?
Quellcode
Wäre froh wenn mir das jemand erklären könnte :shock: -
Auch wenn man keinen Code mal von Grund auf überarbeiten könnte.
Im Prinzip musst du doch nur 87 bis 90 durch den Mailversand ersetzen.
Und $Empfaenger wird dann noch $_POST['email'] zugewiesen
PS: Doch kein AJAX ?? -
Wie meinst du das, $Empfaenger wird dann noch $_POST['email'] zugewiesen?
Ich probiere das ganze nochmals mit Ajax aus... :lol:
Trotz vielen gescheiterten Versuchen, dein Argument ist schon OK.
Das Formular möchte ich auf einer Nicht - Ajax Seite verwenden. -
"Michel" schrieb:
Wie meinst du das, $Empfaenger wird dann noch $_POST['email'] zugewiesen?
Also wie gesagt. 87 bis 90 würd ich einfach durch die folgenden Zeilen ersetzen.
$_POST['email'] hab ich im Folgenden schon ersetzt.
Deine Nachricht musst du natürlich noch selbst zusammenstricken...
Aber dazu sind ja auch noch keine Felder im Formular vorhanden.
-
unexpected T_CONSTANT_ENCAPSED_STRING
line 71
Quellcode
- <?
- function error_bool($error, $field) {
- if($error[$field]) {
- print("<td style=color:red>");
- }
- else {
- print("<td>");
- }
- }
- function show_form() {
- global $HTTP_POST_VARS, $print_again, $error;
- ?>
- <form action="" method="post">
- <table width="400" border="1" cellspacing="0" cellpadding="0">
- <tr>
- <?php error_bool($error, "name"); ?> Name </td>
- <td><input name="name" type="text" id="name" value="<? echo $_POST["name"]; ?>"></td>
- </tr>
- <tr>
- <?php error_bool($error, "email"); ?> Email </td>
- <td><input name="email" type="text" id="email" value="<? echo $_POST["email"]; ?>"></td>
- </tr>
- <tr>
- <td><input type="submit" name="Submit" value="Submit"></td>
- <td> </td>
- </tr>
- </table>
- </form>
- <?
- }
- if(isset($_POST["Submit"])) {
- check_form();
- } else {
- show_form();
- }
- function check_email_address($email) {
- // First, we check that there's one @ symbol, and that the lengths are right
- if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
- // Email invalid because wrong number of characters in one section, or wrong number of @ symbols.
- return false;
- }
- // Split it into sections to make life easier
- $email_array = explode("@", $email);
- $local_array = explode(".", $email_array[0]);
- for ($i = 0; $i < sizeof($local_array); $i++) {
- if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i])) {
- return false;
- }
- }
- if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) { // Check if domain is IP. If not, it should be valid domain name
- $domain_array = explode(".", $email_array[1]);
- if (sizeof($domain_array) < 2) {
- return false; // Not enough parts to domain
- }
- for ($i = 0; $i < sizeof($domain_array); $i++) {
- if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) {
- return false;
- }
- }
- }
- return true;
- }
- function check_form()
- {
- global $HTTP_POST_VARS, $error, $print_again;
- $error['name'] = false;
- if($_POST["name"]=="") {
- $error['name'] = true;
- $print_again = true;
- $message="The name field is empty<br />";
- }
- if(!check_email_address($_POST['email'])) {
- $error['email'] = true;
- $print_again = true;
- $message.="Either Field Empty or Invalid Email ID <br />";
- }
- if($print_again) {
- show_form();
- } else
- {
- $Empfaenger = "info@example.com";
- $Betreff = "Feedback";
- $Nachricht = "<form action="" method="post">
- <table width="400" border="1" cellspacing="0" cellpadding="0">
- <tr>
- <td>Name
- <td>
- <input name="name" type="text" id="name">
- </td>
- </tr>
- <tr>
- <td>Email
- <td>
- <input name="email" type="text" id="email">
- </td>
- </tr>
- <tr>
- <td><input type="submit" name="Submit" value="Submit"></td>
- <td> </td>
- </tr>
- </table>
- </form>";
- $Header = "MIME-Version: 1.0\n";
- $Header .= "Content-type: text/html; charset=iso-8859-1\n";
- mail($Empfaenger, $Betreff, $Nachricht, $Header);
- }
- echo "$message";
- }
- ?>
-
-
Das habe ich mir gedacht.
Trotzdem funktioniert die Validierung nicht und ich bekomme auch kein Mail.
Also glaube ich eine andere Lösung finden zu müssen, danke dONuT für deine Auskünfte.
-
Teilen
- Facebook 0
- Twitter 0
- Google Plus 0
- Reddit 0
-
Benutzer online 1
1 Besucher