无法在PHP内部制作“Reload”脚本

时间:2010-12-23 18:10:27

标签: php javascript

这是在提交表单后运行的内容:

else
{
    echo '<br/> Tu chisme se agregó con éxito.';
    echo '<script type="text/javascript">window.location.reload(true);</script>';
}

基本上,在用户提交表单后,它会执行一些操作,最后显示一条文本,说明帖子已成功提交,然后第二个echo尝试重新加载页面。但是我无法使它工作。它显示文本但不重新加载页面。代码有什么问题?请询问任何信息。感谢

3 个答案:

答案 0 :(得分:2)

POST后正确的做法是“发布后重定向”,这意味着发送带有303代码的HTTP标头(不是简单的302代码,大多数浏览器会阻止您使用后退按钮重新发布303代码,它是为此目的而完成的。)

在发送此HTTP标头代码之前,您不应该发送任何内容(尝试使用ob_start / ob_flush函数来控制它。)

所以,实际上,HTTP协议包含了在POST请求之后控制行为所需的一切,最好避免使用JavaScript。

答案 1 :(得分:0)

答案 2 :(得分:0)

当您的脚本使用“text / javascript”打印出该行时,它已经是一个新页面。你正在重新加载那个重新加载自己的新页面。如果要将访问者定向到原始页面,可以使用PHP的header

header("Location: http://www.example.com/");

用目标网址替换example.com。它只有在页面上没有其他内容输出时才有效,所以你必须摆脱那一行文字。