2013-08-18 102 views
-1

我很好奇这样的行为,假设下面的代码:如何检查提交按钮是否按下了工作?

<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脚本?有人对此有任何解释吗?

+0

是的,当你没有提交表格时,if条件是错误的。 – Shomz

+0

现在认真:打开chrome开发工具,看看你的脚本发送给自己的数据是什么。然后读一下'$ _POST'是什么(假设你已经知道HTTP POST是什么) – zerkms

+0

去阅读表格的地方!当你点击提交时,浏览器将发送一个POST请求,你在'if'语句中检测到这个请求。 – ramseykhalaf

回答

0

如果你的意思是,如何测试时,提交表单试试这个:

<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输入元素的值, EIR名字太...
  • 然后服务器,把名称和值的POST阵列中以下列方式:

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

你输入一些文本更改文本字段的值进去。但是,用户不能真正改变一个提交按钮的值,即显示的文本上一个提交按钮,因此无论何时说echo $_POST['submit_form']你总是会得到您在HTML中设置的值,即提交

希望这有助于...

+0

我的意思是幕后发生了什么。在这种情况下,我感兴趣的是用户点击提交按钮后,这种情况下的PHP行为如何。 – bpinhosilva

+0

@bpinhosilva:php不关心任何按钮,它只关心HTTP请求(在这种情况下POST) – zerkms

+0

看到,基本上每当你提交表单并使用post方法。所有输入字段的所有值都添加到POST字典中。所以后字典。看起来像这样︰{'user'=>'What_ever_you_entered_in_the_text_field','submit_form'=>'提交'} @bpinhosilva –

相关问题