我目前在表单操作上有一些php代码,并且正在使用
更新到表单的下一页
<?php echo $_POST['var here']; ?>
它正在工作,但我注意到当我试图刷新页面时,它要求确认重新提交。当我重新提交时,它可以在其中进行汇总的选项卡中工作,但在另一个新选项卡中,它不会显示显示的php post变量。我甚至在下一步看到当我在提交表单操作后打开第二页时,php post变量就消失了......
帮助!
谢谢!
答案 0 :(得分:1)
当您使用with CTE_TB as (
select a.tableA_ID, a.name, isnull(sum(b.qty),0) as [SumB]
from tableA a left join tableB b
on a.tableA_ID = b.tableA_ID
group by a.tableA_ID, a.name),
CTE_TC as (select a.tableA_ID, isnull(sum(c.qty),0) as [SumC]
from tableA a left join tableC c
on a.tableA_ID = c.tableA_ID
group by a.tableA_ID)
select name, SumB, SumC from CTE_TB a inner join CTE_TC b on a.tableA_ID=b.tableA_ID
order by name;
提交表单时,它会向服务器发送发布请求,从而填充<form method="post" />
。当您在新标签页中打开链接时,它不再是发布请求,而是获取请求。这就是为什么你在$_POST
中看不到任何内容。
$_POST
- 通常来自表格
$_POST
- 来自网址上的值(查询字符串$_GET
)
你可以找到很多关于它的资源。 You can start here
如果您想保留这些值,可以将它们保存到会话中:
myscript.php?myvar=Joe
现在,该值存储在会话中,因此您可以在新标签页中访问该页面,但该页面仍然存在。
答案 1 :(得分:0)
这听起来像是理想的行为。只有在创建后期操作时才应填充$_POST
变量。如果您希望跨页面存储变量,可以将其存储在PHP中的$_SESSION
var中,或者处理前端$_COOKIE
业务。如果你总是要从后端渲染页面,那么$_SESSION
就是你要走的路。在cookies和sessions阅读时,永远不会太迟。
它的缺点是你想要做这样的事情:
<?php
session_start();
if ($_POST['var']) {
$_SESSION['var'] = $_POST['var'];
}
echo $_SESSION['var'] ?: $defaultValue;
然后您会注意到,只有当您发布并且在此之前不存在时,该消息才会发生变化。