2012-03-29 74 views
0

我是一个绝对的PHP n00b,所以我可以使用一些帮助一小片段。提交简单的表单,循环和发送邮件?

我有一个简单的形式与几个无线电和输入字段。一旦它们全部填满并且用户提交表单,我希望通过jQuery AJAX将其提交给PHP文件,该文件循环遍历请求中的所有表单元素,将它们添加到字符串中,并将该字符串作为电子邮件(带有预定义的主题)到预定义的电子邮件帐户。你将如何去在PHP这个简单的任务?

+1

你可以发布一些你的代码吗? – 2012-03-29 12:56:30

+0

这不是一个“小片段”。这是分散在多种编程语言中的大量不同任务。把它分解成不同的问题,然后逐一解决它们。 – Quentin 2012-03-29 12:57:21

+0

我不需要窗体帮助,输入验证,jQuery AJAX提交等。它只是通过表单请求循环并发送电子邮件的PHP片段。对不起,如果我在我的文章模糊。 – brother 2012-03-29 13:00:16

回答

1

你可以做类似

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

这行“foreach($ _POST as key =>值)”失败,出现“Parse error:syntax error,unexpected T_DOUBLE_ARROW,expect T_PAAMAYIM_NEKUDOTAYIM ..”?如果我删除的foreach它按预期工作:) – brother 2012-03-29 13:16:20

+0

应该是:'foreach($ _POST作为$ key => $ value)' – ghbarratt 2012-03-29 13:17:59

+0

明白了!取而代之的是“foreach($ _POST as $ name => $ value)”,这很有效。谢谢! – brother 2012-03-29 13:18:47

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

下面的脚本可以被包含在它的形式,也可以与下面的代码单独的PHP文件的PHP文件中, php文件必须提到的动作属性的形式

<?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 

      } 
    ?> 

在这里在内容变量($内容)你可以广告d从所提到的表格中发布的字段。在$到变量中,您可以提及邮件必须发送到的地址。这会比使用jQuery或AJAX更简单。