我对这个感到有点困惑。我正在尝试显示一个"请等待......"在同一页面上运行PHP时提交表单(请参阅下面的代码)的消息。它似乎运行PHP,然后重新加载页面。
我已将sleep(10)添加到测试目的。
有人可以帮忙吗?
谢谢,
约翰
编辑:好的,我现在明白了服务器端和客户端之间的区别。所以 - 我的问题是:如何在单击提交时和PHP运行之前显示消息?<?php
if (isset($_POST['submit'])) {
echo "Please wait..."; //display a loading message
}
?>
<form action="test.php" method="post">
<input type="test"></input>
<button name="submit" type="submit">SEND</button>
</form>
<?php
if (isset($_POST['submit'])) {
sleep(10); //run a script that takes a while
}
?>
答案 0 :(得分:2)
您的PHP脚本将无法发送消息然后重定向。您需要在等待页面上使用JavaScript并重定向。如果您没有尝试重定向,请不确定为什么需要请等待消息。
setInterval(function(){window.location.href="your_url" }, 10000);
对于下载脚本,需要将内容类型设置为PDF,这意味着在此之前不能发送任何内容(否则标题已发送错误)。
两种可能的解决方案:
1.您应该在用户点击的页面上显示“请稍候”,并在另一页面打开下载脚本
2.下载页面可以显示html,然后使用iframe下载文件。 Using jQuery and iFrame to Download a File