【问题标题】:PHP refresh parent window after closing a child window关闭子窗口后PHP刷新父窗口
【发布时间】:2014-07-28 09:08:13
【问题描述】:

我有 3 个 php 文件:view.phpedit.phpedit2.php

view.php 是我查看数据库内容的地方。我使用edit.php 输入新数据,这是一个小窗口,我在其中输入要包含在数据库中的内容。
然后,我将所有数据传递给edit2.php,它不显示任何内容,只实现了 MySQL 查询。

现在我想要这样的东西:

我在view.php。我单击一个按钮,edit.php 作为一个新的小窗口打开。我输入数据,点击提交按钮,所有内容都发送到edit2.php,但同时关闭窗口并刷新view.php

如果您能提供帮助,我将不胜感激。提前致谢。

【问题讨论】:

  • 你是如何保存数据的?用ajax??
  • 我使用 html post 方法并将其发送到 mysql 查询
  • 如果您在服务器端执行此操作,则 php.else 的用户标头函数在通过 ajax 保存数据后使用 window.opener.location.reload()

标签: javascript php mysql


【解决方案1】:

可以使用js函数window.opener.location.reload().刷新页面不需要ajax..简单的js就够了。

【讨论】:

  • 我应该在哪里实现这个功能?
  • 你可以像使用 echo '';
  • 我不完全明白你的意思。我应该把这个函数放在edit2.php的末尾吗?
  • 好的,我知道了。感谢您的帮助!
【解决方案2】:

您可以使用 header('位置:view.php'); 在你的 edit2.php 结束时

【讨论】:

  • 我已经回答了这个问题,使用 header("location: view.php");将在小窗口中打开 view.php,我想关闭小窗口并刷新主(父)窗口。
【解决方案3】:

将以下代码添加到您的edit.php

    <script>
    window.onunload = refreshParent;
    function refreshParent() {
        window.opener.location.reload();
    }
   </script>

【讨论】:

  • 这将在小(我称之为“子”)窗口中打开view.php,我想关闭子窗口并同时刷新父窗口。
  • 你的意思是在执行edit2.php之后,你想将view.php作为新窗口打开对吗??
  • 没有。我在 view.php 上。我单击一个按钮,edit.php 显示为一个新的小窗口。我输入我想要包含在我的数据库中的内容,单击“保存”(或任何按钮),所有内容都通过 html post 方法发送到 edit2.php,但同时这个小窗口关闭,主大窗口已刷新。
  • 好的.. 我明白了.. 最好你可以向edit2.php发送请求并从edit2.php获得成功
  • if(success){ close.edit2.php and... refresh view.php }
猜你喜欢
  • 2011-01-19
  • 2023-03-07
  • 2012-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多