PHP中输入的初始值

时间:2013-03-13 16:12:20

标签: php

这是一个简单的问题: 像这样的代码

<input type="hidden" name="HDN_FormClicked" value="WasClicked" />

if (strlen($_POST["HDN_FormClicked"]) > 0){
  echo "You have clicked the button";
}

每次都检查输入值吗?那么为什么第一次输入不大于0?这是初步设定吗?

感谢您的帮助:)。

3 个答案:

答案 0 :(得分:4)

此值只会(并且始终)在您POST表单时设置,而不是第一次在没有表单提交的情况下加载页面时。您可以稍微修改它以避免混淆

if(isset($_POST))
{
if (strlen($_POST["HDN_FormClicked"]) > 0){
  echo "You have clicked the button";
}
}
else
{
echo "Form was not submitted this time";
}

答案 1 :(得分:3)

错误的解决方案,但您的问题的答案是:因为表单值尚未发送到服务器。所以在第一次发送之后,你会把它填满。只显示输入,不会发送数据。

答案 2 :(得分:2)

冥王星,也许我在这里遗漏了一些东西,或者可能会对表格如何与PHP沟通产生轻微的误解。

PHP不知道您在页面上显示的表单数据,它知道它是输出文本。当您执行表单提交时,就是当PHP识别出表单数据已传递给它时。

设想我们的页面包含以下代码:

<?php
if($_POST['HDN_FormClicked']) {
  print 'You have clicked the button';
} else {
  print 'Form was not submitted this time';
}
?>
<form method="post">
  <input type="hidden" name="HDN_FormClicked" value="1" />
  <button type="submit">Click</button>
</form>

默认情况下,表单上方的文字会显示“此次未提交表单”。

当您按下“单击”按钮时,表单将发布到脚本,PHP将检测到表单元素已通过,并将打印“您已单击按钮”。