我希望人们能够在表单上单击“提交”,加载检查某些数据的页面,然后重定向到整个新页面。我知道你可以使用header()来重定向,但你不能用标题加载任何东西,我想在页面之间加载动画。实现这一目标的最佳方法是什么。
答案 0 :(得分:6)
我会让表单将其数据提交到另一个页面(类似action="process.php"
)。
该页面处理您的表单发送的任何数据,显示一个漂亮的“加载”文本和动画,并在一段时间后将用户重定向到另一个页面。
这可以使用HTML的元刷新来完成,它位于您的<head>
中,如下所示:
<meta http-equiv="refresh" content="3;url=anotherpage.php">
content
属性是有趣的。 3
表示3秒,anotherpage.php
是经过3秒后重定向到的网站。
答案 1 :(得分:1)
作为替代方案,我建议在提交页面上使用最小的Javascript效果。 onsubmit
您禁用提交按钮并在其附近显示微调器或类似动画,也可能添加“正在处理...”消息。然后页面可以通过正常的POST /重定向/ GET循环,它比通过中间页面更快,用户仍然感觉到正在发生的事情。
答案 2 :(得分:0)
如果已经发送了标题,那么这是我用来将浏览器发送到$ newLocation的PHP / JavaScript代码:
echo '<script language="javascript" type="text/javascript" >', PHP_EOL;
echo '<!--', PHP_EOL;
echo ' window.top.location.href = \'', $newLocation, '\'', PHP_EOL;
echo '// -->', PHP_EOL;
echo '</script>', PHP_EOL;
在我的情况下,我正在使用它来更好地在已经发送标题后从错误情况中恢复。
答案 3 :(得分:-3)
要在php中重定向,请使用header("Location: $url");