PHP:无法检查是否提交了表单

Sik*_*der 0 javascript php forms jquery

我正在这样的模式窗口内的php文件中使用表单

 <div class="modal-body">
                <form  method="post" action="m.php">
                    <div class="form-group">
                        <lable>Name</lable>
                        <input type="text" class="form-control" required="required">
                    </div>

                    <div class="form-group">
                        <lable>Email</lable>
                        <input type="text" class="form-control" required>
                    </div>

                    <div class="form-group">
                        <lable>Details</lable>
                        <input type="text" class="form-control" required>
                    </div>

                    <div class="form-group">
                        <lable>Message</lable>
                        <textarea name="" id=""  class="form-control"></textarea>
                    </div>
                     <div class="form-group">
                        <a href="" class="btn btn-default" name="submit" style=" background: #eee; width:100px;display: block;margin-left:auto;">Submit</a>
                    </div>
                </form>
            </div>
Run Code Online (Sandbox Code Playgroud)

现在,当我按下“提交”按钮时,文件名是m.php,它无法检测到表单提交

<?php

if( ($_SERVER['REQUEST_METHOD'] == 'POST')){
    die("form submitted");
}

?>
Run Code Online (Sandbox Code Playgroud)

我也尽力$_POST['submit']帮助我这有什么问题

Mar*_*ijn 5

这是因为您没有按下提交按钮,而是按下了一个称为提交的链接。尝试将其替换为<input type="submit" value="Submit" />

此外,您的支票是否已提交表格都使用了危险的方法。如果您的代码中要处理多个表单,它将捕获所有表单。更好的方法是:

if( isset($_POST['nameOfSubmitbutton']) ){}
// because you can now easily do:
if( isset($_POST['completelyDifferentButton']) ){}
Run Code Online (Sandbox Code Playgroud)

如果您想保留锚点(我建议您这样做),则可以使用javascript来为您伪造提交内容:

document.getElementById('yourAnchor').onclick = function(){
    document.getElementById('yourForm').submit();
}
// Or if you have jQuery:
$('#yourAnchor').on('click', function(e){
    e.preventDefault();
    $(this).closest('form').submit();
});
Run Code Online (Sandbox Code Playgroud)