我对这种行为很好奇。假设下面的代码:
<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
希望能有所帮助。。。