isset($ _POST ['submit'])总是返回false(我没有忘记name =“submit”)

时间:2015-04-20 13:20:33

标签: php html forms

我有以下HTML表单:

<form class="page-footer_enquiry-form" id="page-footer_enquiry-form" method="post" autocomplete="on" action="../php/enquiry.php">
    <h2 class="page-footer_enquiry-form-title">Enquiry</h2>
    <!-- Name -->
    <div class="page-footer_enquiry-form-name">
        <label for="footer-enquiry-name">
            <span class="page-footer_enquiry-form-label">Full Name</span>
            <input type="text" id="footer-enquiry-name" name="fullname">
        </label>
    </div>
    <!-- Email -->
    <div class="page-footer_enquiry-form-email">
        <label for="footer-enquiry-email">
            <span class="page-footer_enquiry-form-label">Email Address</span>
            <input type="email" id="footer-enquiry-email" name="email">
        </label>
    </div>
    <!-- Message -->
    <div class="page-footer_enquiry-form-message">
        <label for="footer-enquiry-message">
            <span class="page-footer_enquiry-form-label">Message</span>
            <textarea name="message" id="footer-enquiry-message" rows="10" cols="50"></textarea>
        </label>
    </div>
    <input name="submit" type="submit" value="Send Message" class="button-dark">
    <p class="page-footer_enquiry-form-dialog"></p>
</form>

以下PHP“处理”:

if( isset( $_POST['submit'] ) ){
    echo 'first';
} else {
    echo 'second';
};

每当我按下提交按钮时,我都会'秒'(通过js登录到控制台)。

编辑 - jQuery:

handler : function(){
    var jqxhr = $.ajax({
        type: 'POST',
        url: '../php/enquiry.php',
        data: $('#page-footer_enquiry-form').serialize() + "&js=true",
        success : function(res) {
            console.log(res);
        }
    });
},

我担心这对其他人来说是显而易见的,但我无法确定问题。求助。

1 个答案:

答案 0 :(得分:5)

如果你看一下serialize()https://api.jquery.com/serialize/的文档,你会发现以下内容:

  

没有提交按钮值被序列化,因为表单未使用按钮提交。

我认为这会导致你的问题。