2012-03-29 24 views
0

Ich bin ein absoluter PHP n00b, also könnte ich Hilfe mit einem kleinen Ausschnitt verwenden.Senden Sie einfach Formular, Schleife und Mail senden?

Ich habe ein einfaches Formular mit ein paar Radio und Eingabefelder. Sobald alle ausgefüllt sind und der Benutzer das Formular abschickt, möchte ich es über jQuery AJAX an eine PHP-Datei übergeben, die alle Formularfelder in der Anfrage durchläuft, sie zu einer Zeichenkette hinzufügt und diese Zeichenkette als E-Mail (mit einem vordefinierten Betreff) an ein vordefiniertes E-Mail-Konto. Wie würdest du mit dieser einfachen Aufgabe in PHP umgehen?

+1

Können Sie einige Ihrer Codes veröffentlichen? –

+0

Das ist kein "kleiner Ausschnitt". Das ist eine signifikante Anzahl von verschiedenen Aufgaben, die auf mehrere Programmiersprachen verteilt sind. Unterteilen Sie sie in die verschiedenen Probleme und sprechen Sie sie einzeln an. – Quentin

+0

Ich brauche keine Hilfe mit dem Formular, Eingabe-Validierung, jQuery AJAX senden usw. Es ist nur das PHP-Snippet, das die Formularanforderung durchläuft und eine E-Mail sendet. Entschuldigung, wenn ich in meinem Beitrag vage war. – brother

Antwort

1

Man könnte so etwas wie

<?php 
$to = '[email protected]'; 
$subject = 'website form'; 
$message= ''; 
foreach ($_POST as $key => $value) 
{ 
    $message .= $key . ': ' . $value . PHP_EOL; 
} 
mail($to, $subject, $message); 
?> 
+0

Diese Zeile "foreach ($ _POST as key => value)" schlägt mit "Parse error: syntax error, unerwartete T_DOUBLE_ARROW, T_PAAMAYIM_NEKUDOTAYIM erwartet." Fehl? Wenn ich den foreach entferne, funktioniert es wie erwartet :) – brother

+0

Sollte sein: 'foreach ($ _POST als $ key => $ wert)' – ghbarratt

+0

Got it! Ersetzt es mit "foreach ($ _POST als $ name => $ value)" und das funktioniert. Danke! – brother

0
// html_file.html 
<form action="" method="POST">...</form> 

<script> 
$("form").on("submit", function() 
{ 
    $.post($(this).attr("action"), $(this).serialize()); 
}); 
</script> 

// some_php_file.php 
<?php 
.. 
foreach ($_POST as $post_field) {} // process posted data 
mail(..) //send mail 
0
$message = ''; 
$fields_to_place = array('name', 'message', 'phone', 'status'); 
foreach($fields_to_place as $f) 
{ 
    if(isset($_POST[$f])) $message .= $f.': '.$_POST[$f]."\n"; 
} 

$headers = "From: [email protected]\r 
Reply-To: ".$_POST['email']."\r\n"; 
mail('[email protected]', 'Contact Form', $message, $headers); 
0

Das folgende Skript kann in der PHP-Datei tun, die die Form hat enthalten sein oder Sie können eine separate PHP-Datei mit dem folgenden Code, der pHP-Datei hat in th action-Attribut des Formulars

<?php 
    $content= "First Name: ".$_POST['firstname']."\n"; 
    $content.= "Last Name: ".$_POST['lastname']."\n"; 

    $to = "[email protected]" ;    

      $headers .= "MIME-Version: 1.0\n"; 
      $headers .= "Mailed-By: test.com\n"; 
      $headers .= "Content-Type: text/HTML; charset=ISO-8859-1\n";    

      $headers = 'From:'.$_POST['email'] . "\r\n" .'Reply-To:'.$_POST['email'] . "\r\n" .'X-Mailer: PHP/' . phpversion(); 

      if(mail($to,'testsubject',$content,$headers)){ 
      ?> 
      <script type="text/javascript"> 
        alert("Thank you for contacting us.We will get back to you soon."); 
        window.location.href="index.php"; 
      </script> 
      <?php 
      }else{ 
      ?> 
      <script type="text/javascript"> 
        alert("mail not sent! Please try after some time!"); 
        window.location.href="index.php"; 
      </script> 
      <?php 

      } 
    ?> 

Hier in der Inhaltsgröße ($ content) erwähnt werden, können Sie Anzeige d die Felder aus dem Formular wie erwähnt. In $ to Variable können Sie die Adresse angeben, an die die Mail gesendet werden soll. Dies wäre einfacher als die Verwendung von jQuery oder AJAX