当使用Bootstrap3的contact-form类时,在PHP中没有收到POST


Not receiving POST in PHP when using class contact-form from Bootstrap3

我在Bootstrap3中有一个简单的联系人表单。当我添加"contact-form"类时,php没有接收POST参数,因此邮件发送为空。

格式是:

<div id="contact-section">
    <h3>Contacta con nosotros</h3>
    <div class="status alert alert-success" style="display: none"></div>
    <form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="sendemail.php">
        <div class="form-group">
            <input type="text" name="name" class="form-control" required="required" placeholder="Nombre">
        </div>
        <div class="form-group">
            <input type="email" name="email" class="form-control" required="required" placeholder="E-mail">
        </div>
        <div class="form-group">
            <textarea name="message" id="message" required="required" class="form-control" rows="4" placeholder="Introduzca su mensaje"></textarea>
        </div>                        
        <div class="form-group">
            <button type="submit" class="btn btn-primary pull-right">Enviar</button>
        </div>
    </form>        
</div>

,这是php:

<?php
    header('Content-type: application/json');
    $name =  @trim(stripslashes($_POST['name'])); 
    $email = @trim(stripslashes($_POST['email'])); 
    $subject = @trim(stripslashes($_POST['subject'])); 
    $message = @trim(stripslashes($_POST['message'])); 
    $email_from = $email;
    $email_to = 'jcarlosrga@gmail.com';//replace with your email
    $body = 'Name: ' . $name . "'n'n" . 'Email: ' . $email . "'n'n" . 'Subject: ' . $subject . "'n'n" . 'Message: ' . $message;
    $success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>');
    $status = array(
        'type'=>'success',
        'message'=>'Gracias por el mensaje. Tan pronto como podamos, nos pondremos en contacto contigo.'.$name
    );
    echo json_encode($status);
    die;
?>

这是jquery验证

// Contact form validation
var form = $('.contact-form');
form.submit(function () {'use strict',
    $this = $(this);
    $.post($(this).attr('action'), function(data) {
        $this.prev().text(data.message).fadeIn().delay(3000).fadeOut();
    },'json');
    return false;
});

据我所知,contact-form不是一个有效的引导类,尝试使用form-horizontal

如果您在某个地方定义了contact-form类,请与我们分享

添加一个类的形式不能真正阻止它发送post数据,除非你有一个打字错误在你的代码,你错过了结束引号或类似的东西(但它似乎在你的问题ok)。

要验证这个假设,将方法动作属性移到开头,如下所示:

<form method="post" action="sendemail.php" id="main-contact-form" class="contact-form" name="contact-form" >