如何检查表单是否在没有提交按钮的情况下提交


how to check if form is submitted without submit button?

我想提交一个带有js函数的表单,在php操作页面中我想检查表单是否已提交,这是我的代码:

<form method="post" action="index.php" name="form1">
        <fieldset>
        ...
        </p><div class="clearfix"></div>
        <input type="button" id="send1" onclick="validateForm1();" class="comment_submit" value="SUBMIT" name="send1"><p></p>
        </fieldset>
        </form>

这是JS:

function validateForm1(){
                        var name = document.getElementById('fullName');
                        ...
                        if(isNotEmpty(name))
                           ...
                             document.forms['form1'].submit();
                    }

那么我如何在不使用if(!empty($_POST))的情况下检查表单是否已提交,因为我有 2 个表单将提交到同一个操作页面。

检查您的字段是否已填充。

if(!empty($_POST["field1_from_form1"]) && !empty($_POST["field2_from_form1"]) /* && ... */) {
    // Form 1 is filled.
}

而对于另一种形式...

if(!empty($_POST["field1_from_form2"]) && !empty($_POST["field2_from_form2"]) /* && ... */) {}

您还可以在每个表单中设置隐藏输入...

<input type="hidden" name="formID" value="1" /> <!-- Form 1 -->
<input type="hidden" name="formID" value="2" /> <!-- Form 2 -->

。并检查它:

if(isset($_POST["formID"]) && $_POST["formID"] == 1) // ...
if(isset($_POST["formID"]) && $_POST["formID"] == 2) // ...

对于您关于堆栈溢出的下一个问题,请使用该网站的搜索功能以避免重复已经回答的问题。

if($_SERVER['REQUEST_METHOD'] === 'POST') {
    if($_POST['myHiddenInput'] === 'form1'){
        //process form 1
    }
    else if($_POST['myHiddenInput'] === 'form2'){
       //process form2
    }
}

并在表单中添加一些隐藏的输入,以识别您发布的表单。