如何检查“;“提交按钮被按下”;工作


How does checking for "submit button is pressed" work?

我对这种行为很好奇。假设下面的代码:

<form name="myfrom" action="" method="post">
    Username: <input type="text" name="user" id="username" />
    <input type="submit" name="submit_form" value="Submit" />
</form>
<?php
    if($_POST['submit_form'] == "Submit") {
        echo "do something";
    }
?>

它起作用的原因是什么?这是因为当你点击提交按钮时,页面会再次重新加载,然后PHP脚本会再次运行吗?有什么解释吗?

如果您的意思是,如何在提交表单时进行测试请尝试以下操作:

<form name="myfrom" action="" method="post">
    Username: <input type="text" name="user" id="username" />
    <input type="submit" name="submit_form" value="Submit" />
</form> 
<?php if(isset($_POST['user'])) {
    echo "do something";
}
?>

如果你测试if($_POST['submit_form'] == "Submit"),你会得到真的。。即1…

当您使用POST方法提交任何PHP表单时,会在幕后发生以下情况:

  • 服务器获取所有HTML输入元素的值,并获取它们的名称
  • 然后,服务器按照以下方式将名称和值放入POST数组:

{'name1'=>'value1','name2'=>'value2','name3'=>'value3','name4'=>'value4'...'name_n_'=>'value_n_'}

您可以通过在文本字段中输入一些文本来更改文本字段的值。但是,用户无法真正更改提交按钮的值,即提交按钮上显示的文本,因此,每当您说echo $_POST['submit_form']时,您总是会得到您在HTML中设置的值,如submit

希望能有所帮助。。。