2017-06-21 108 views
0

我刚开始学习php的基础知识,并且想要了解w3schools类的内容。如何使用jQuery验证在php中发送电子邮件

我的HTML看起来像这样:

<form role="form" method="POST" id="main-contact-form"> 
<br style="clear:both"> 
    <h3 style="margin-bottom: 25px; text-align: center;">Contact a Conveyancing Property Lawyer Now</h3> 
    <div class="form-group"> 
     <input type="text" class="form-control" id="name" name="name" placeholder="Name" required> 
    </div> 
    <div class="form-group"> 
     <input type="text" class="form-control" id="email" name="email" placeholder="Email" required> 
    </div> 
    <div class="form-group"> 
     <input type="text" class="form-control" id="mobile" name="mobile" placeholder="Mobile Number" required> 
    </div> 
    <div class="form-group"> 
     <input type="text" class="form-control" id="subject" name="subject" placeholder="Subject" required> 
    </div> 
    <div class="form-group"> 
    <textarea class="form-control" type="textarea" id="message" placeholder="Message" maxlength="140" rows="7" name="message"></textarea> 
     <span class="help-block"><p id="characterLeft" class="help-block ">You have reached the limit</p></span>      
    </div> 

    <button type="submit" id="submit" name="submit" class="btn btn-primary">Submit</button> 
</form> 

然后我的jQuery的文件看起来像这样:

$('#main-contact-form').submit(function(event){ 
event.preventDefault(); 
$.ajax({ 
    type:'post', 
    url:'sendememail.php', 
    data:$(this).serialize(), 
    success:function(response){ 
     if(response==1) 
     { 

      setInterval(function(){$('.review_form').html('<h5><center><div class="alert alert-success">Review Successfully Submitted......</div></center></h5>');},5); 

     } 
     else 
     { 

      setInterval(function(){$('.review_form').html('<h5><center><div class="alert alert-danger">Sorry Your Review Was Not Submitted......</div></center></h5>');},5); 

     } 
    } 

    }); 
    }); 

从我能看到,这是多么或多或少如何邮件被发送出去。

<?php 
    $to = "[email protected]"; 
    $subject = "My subject"; 
    $txt = "Hello world!"; 
    $headers = "[email protected]" . "\r\n" . 
    "CC: [email protected]"; 

    mail($to,$subject,$txt,$headers); 
?> 

我sendemail.php看起来是这样的:

<?php 
extract($_POST); 
$to = $email; 
$subject = $subject; 
$txt = $message; 
$headers = "[email protected]" . "\r\n" . 
"CC: [email protected]"; 

mail($to,$subject,$txt,$headers); 
?> 

当我点击提交按钮,我得到,你可以在图片中看到的错误:

enter image description here

希望能对你有所帮助。

在此先感谢

+0

要将数据从表单发送到php而无需刷新页面,您需要使用AJAX http://api.jquery.com/jquery.ajax/ –

回答

0

试试这个代码:

创建像sendemail.php并输入你的电子邮件的代码发送电子邮件新的一页。

从窗体中移除操作并在窗体标签中添加属性标识。

<form role="form" method="POST" id="main-contact-form"> 
<br style="clear:both"> 
     <h3 style="margin-bottom: 25px; text-align: center;">Contact a Conveyancing Property Lawyer Now</h3> 
     <div class="form-group"> 
      <input type="text" class="form-control" id="name" name="name" placeholder="Name" required> 
     </div> 
     <div class="form-group"> 
      <input type="text" class="form-control" id="email" name="email" placeholder="Email" required> 
     </div> 
     <div class="form-group"> 
      <input type="text" class="form-control" id="mobile" name="mobile" placeholder="Mobile Number" required> 
     </div> 
     <div class="form-group"> 
      <input type="text" class="form-control" id="subject" name="subject" placeholder="Subject" required> 
     </div> 
     <div class="form-group"> 
     <textarea class="form-control" type="textarea" id="message" placeholder="Message" maxlength="140" rows="7" name="message"></textarea> 
      <span class="help-block"><p id="characterLeft" class="help-block ">You have reached the limit</p></span>      
     </div> 

     <button type="submit" id="submit" name="submit" class="btn btn-primary">Submit</button> 
</form> 

然后下列所示的JQuery的改变:

<script> 
$('#main-contact-form').submit(function(event){ 
event.preventDefault(); 
$.ajax({ 
    type:'post', 
    url:'sendememail.php', 
    data:$(this).serialize(), 
    success:function(response){ 
     if(response==1) 
     { 

      setInterval(function(){$('.review_form').html('<h5><center><div class="alert alert-success">Review Successfully Submitted......</div></center></h5>');},5); 

     } 
     else 
     { 

      setInterval(function(){$('.review_form').html('<h5><center><div class="alert alert-danger">Sorry Your Review Was Not Submitted......</div></center></h5>');},5); 

     } 
    } 

    }); 
    }); 
</script> 

这里你sendemail.php:

<?php 
extract($_POST); 
$to = $email; 
$subject = $subject; 
$txt = $message; 
$headers = "[email protected]" . "\r\n" . 
"CC: [email protected]"; 

mail($to,$subject,$txt,$headers); 
?> 

电子邮件是发送给您的电子邮件文本框中输入。

+0

但是如果我希望将电子邮件发送给我,我该如何处理。说我的电子邮件是[email protected]。我的PHP怎么样? – Nadj

+0

请参阅我的编辑代码。 –