-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 脚本再次运行?有解释吗?

4

1 回答 1

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 输入元素的值并获取它们的名称......
  • 然后服务器按以下方式将名称和值放入 POST 数组中:

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

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

希望有帮助...

于 2013-08-18T06:41:06.710 回答