输入按钮和ajax没有提交POST

时间:2018-06-05 12:58:31

标签: php html ajax

我有一个非常简单的形式。我正在使用Ajax提交。表格工作正常。但是当我尝试使用php来检查在执行代码之前是否按下了输入按钮时,它似乎没有拿起按钮。 任何关于做什么的建议都会很棒。我添加了一个sam [以下代码的文件

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<form class="Email-student" method= "post">
    <input class="form-control" type="text" name="Email-subject" placeholder="Email Subject">  
    <textarea class="form-control" id="message" name="Email-message" placeholder="Enter messages"></textarea>  
    <input type="submit" id="btnSubmit" name="btnSubmit" value="Save Changes" />
</form> 

<script>    
    $(document).ready(function(){
        $('.Email-student').submit(function(e){
            e.preventDefault();

            var url = "mysql.php"; // the script where you handle the form input.

            $.ajax({
                type: "POST",
                url: url,
                data: $(this).serialize(), // serializes the form's elements.
                success: function(data) {
                    //$('.Email-student').html(data);
                    alert(data);
                }
            });

        })
    })
</script>

这是我的Php文件的简化版

if (isset($_POST['btnSubmit'])) {
    echo  'btnSubmit';
} 

1 个答案:

答案 0 :(得分:1)

serialize()不会在表单中包含任何提交按钮。如果用于提交表单,它们只是成功的控件,serialize()

  • 实际上不是表单提交过程的一部分
  • 无法知道哪个(如果有)提交按钮用于提交表单

因此,isset($_POST['btnSubmit'])将不属实。

使用其他一些机制来确定您是否感兴趣的表单数据(例如Email-subject字段的存在)。