我有问题。我有一个页面,当您单击按钮时,会显示带有表单的弹出窗口。所以,我完成了一些数据并提交。我想要做的是,提交表单,关闭表单并刷新父页面。我不想用AJAX做这件事。
问题是在我的父页面中我必须使用表单的输入信息刷新内容。
因此,当我刷新时,有时显示数据,有时不显示。你知道为什么会这样吗?
我只是在表单中使用onsubmit="refreshParent()"
。信息始终存储在我的数据库中,因此我认为问题可能是有时刷新会捕获新信息,有时则不会。
function refreshParent() {
window.opener.location.reload();
window.close();
}
答案 0 :(得分:2)
我用它来重新加载打开弹出窗口的页面:
<script language="JavaScript">
<!--
function reloadParentPage() {
window.opener.location.href = window.opener.location.href;
if (window.opener.progressWindow) {
window.opener.progressWindow.close()
}
window.close();
}
//-->
</script>
顺便说一句,上面的代码是通过弹出页面中的链接或按钮调用的。
答案 1 :(得分:1)
执行插入的脚本与重新加载父级的脚本之间存在竞争条件。
解决方案是在提交后在页面上调用refreshParent - 这样您就知道数据在数据库中。您甚至不必在文档就绪时执行此操作 - 返回刚刚定义的存根页面并在head标记中调用refreshParent。
答案 2 :(得分:0)
在PHP中运行post脚本时,最后请包含以下代码:
echo '<html><script language="javascript">
parent.location.href="http://'.$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"].'"; // or any other url
</script></html>';
这将输出一个将重新加载窗口的JavaScript。