首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在同一个文件中使用HTML、PHP和Ajax

在同一个文件中使用HTML、PHP和Ajax
EN

Stack Overflow用户
提问于 2014-10-24 16:09:50
回答 1查看 1.3K关注 0票数 0

大家早上好,为了重新学习网络编程,我试图在一个自包含的html文件中制作一个简单的邮件表单,所以没有包含,没有外部引用使用HTML和Ajax。重点是制作一个独立的html,在提交表单时不会刷新。

我有如下的html表单:

代码语言:javascript
复制
<form class="form2" action="" method="POST" name="myForm" id="myForm">
<div class="formtitle">Inscrivez-vous à notre infolettre</div>
<div class="input">
<div class="inputtext">Nom: </div>
<div class="inputcontent">
<input type="text" name="name" id="name" />
</div>
</div>
<div class="input">
<div class="inputtext">Courriel: </div>
<div class="inputcontent">
<input type="text" name="email" id="email" />
</div>
</div>
<div class="buttons"> <span id="error" style="display:none; color:#F00">Some Error!Please Fill form Properly </span> <span id="success" style="display:none; color:#0C0">All the records are submitted!</span>
<input class="greybutton" type="submit" value="Inscrivez-moi" />
</div>
</form>

然后,我让Ajax侦听提交按钮循环:

代码语言:javascript
复制
<script>
$(document).ready(function(){
$('#myForm').on('submit',function(e) {

$.ajax({
data:$(this).serialize(),
type:'POST',
success:function(data){
console.log(data);
$("#success").show().fadeOut(5000); //=== Show Success Message==
},
error:function(data){
$("#error").show().fadeOut(5000); //===Show Error Message====
}
});
e.preventDefault(); //=== To Avoid Page Refresh and Fire the Event "Click"===
});
});
</script>

最后,我有了典型的mail php代码:

代码语言:javascript
复制
<?php $name = $_POST['name'];
$email = $_POST['email'];
$message = "Veuillez m'ajouter à votre newsletter";
$formcontent="From: $name \n Message: $message";
$recipient = "myMail@MyDomain.com";
$subject = "Newsletter";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
?>

由于某些原因,它似乎从来没有到达php,因为没有发送邮件或成功/错误消息。我翻倍又翻了三倍,检查了通过的所有论点,一切似乎都井井有条。

感谢您的时间和分享您的知识!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-24 16:17:26

将您的PHP代码放到另一个称为: api_newsletter.php的页面中

通过以下方式更改Php代码:

代码语言:javascript
复制
<?php 
    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = "Veuillez m'ajouter à votre newsletter";
    $formcontent="From: $name \n Message: $message";
    $recipient = "myMail@MyDomain.com";
    $subject = "Newsletter";
    $mailheader = "From: $email \r\n";

    if(mail($recipient, $subject, $formcontent, $mailheader)){
        echo json_encode(array('success' => true)); 
    }else {
        echo json_encode(array('success' => false)); 
    }
?>

然后,在ajax代码中只需:

代码语言:javascript
复制
<script>
$(document).ready(function(){

  $('#myForm').on('submit',function(e) {

    $.ajax({
        data:$(this).serialize(),
        type:'POST',
        url : '/api_newsletter.php',
        success:function(data){

            console.log(data);
            var rsp = $.parseJSON (data)

            if(rsp["success"] == true){

                $("#success").show().fadeOut(5000); //=== Show Success Message==

            }else {

                $("#error").show().fadeOut(5000); //===Show Error Message====

            } 
        },
        error:function(data){

                $("#error").show().fadeOut(5000); //===Show Error Message====

        }
    });

    e.preventDefault(); //=== To Avoid Page Refresh and Fire the Event "Click"===

  });

});
</script>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26551893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档