提交表单以运行PHP脚本时显示消息

时间:2017-04-18 15:47:17

标签: php html

我对这个感到有点困惑。我正在尝试显示一个"请等待......"在同一页面上运行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
}
?>

1 个答案:

答案 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