这是一个简单的问题: 像这样的代码
<input type="hidden" name="HDN_FormClicked" value="WasClicked" />
if (strlen($_POST["HDN_FormClicked"]) > 0){
echo "You have clicked the button";
}
每次都检查输入值吗?那么为什么第一次输入不大于0?这是初步设定吗?
感谢您的帮助:)。
答案 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将检测到表单元素已通过,并将打印“您已单击按钮”。