Php Ajax表格未提交

时间:2017-10-17 15:41:42

标签: javascript php jquery ajax forms

嘿伙计们我正在创建一个简报注册表单并试图用AJAX提交它。

这是我的表格:

<div id="form-content">
  <form method="POST" id="news-form" name="newsletter">
     <div class="bd-input-2 form-group">
        <input type="email" name="newsletter_email" placeholder="Enter your email address" required />
     </div>             
     <div class="form-group">
        <button type="submit" name="newsletter">Submit</button>
     </div>
   </form>
</div>

这个是我在同一页面中的JS文件:

$('#news-form').submit(function(e){     
    e.preventDefault();
    $.ajax({
        url: 'newsletter-submit.php',
        type: 'POST',
        data: $(this).serialize()
    })
    .done(function(data){
        $('#form-content').fadeOut('slow', function(){
            $('#form-content').fadeIn('slow').html(data);
            console.log(data);
        });
    })
    .fail(function(){
        alert('Ajax Submit Failed ...');    
    });
});

在控制台上,没有任何内容显示甚至只是空行错误。

我的newsletter-submit.php文件:

<?php
if(isset($_POST['newsletter'])){
    $newsletter_email = filter_var($_POST['newsletter_email'],FILTER_VALIDATE_EMAIL);    
    if(filter_var($newsletter_email, FILTER_VALIDATE_EMAIL)){
        $newsletter_email = filter_var($newsletter_email, FILTER_VALIDATE_EMAIL);
        $em_check = sqlsrv_query($con, "SELECT email FROM newsletter_signups WHERE email='$newsletter_email'",array(), array("Scrollable"=>"buffered"));
        $num_rows = sqlsrv_num_rows($em_check); 
        if($num_rows > 0){
            echo "<br/><p style='color: #fff;'>Email exist in our newsletter list.</p>";
        }else{
            $query = "INSERT INTO newsletter_signups (email) VALUES ('{$newsletter_email}')";
            $insert_newsletter_query = sqlsrv_query($con,$query);
            echo '<br/><p style="color: green;">Thank you for sign up in our newsletter</p>';
        }
    }
}
?>

但是如果我在提交后显示的 php tags 例如Hello world之后添加任何代码。

我的php代码在AJAX文件之前正在运行

1 个答案:

答案 0 :(得分:3)

您的输入字段名为https://projectA.test.com/test,在您的php中,您正在检查newsletter_email,这始终是错误的。