Kennt jemand ein gutes Ajax Form Script, welches ich in meinem Content einbauen kann?
Formmailer
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
-
-
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