【问题标题】:PHP Javascript: Closing Popup calling parent window in backgroundPHP Javascript:在后台关闭弹出调用父窗口
【发布时间】:2015-12-25 11:55:09
【问题描述】:

假设一个父窗口是www.mysite.com/index.php 有几个链接。当用户点击这些链接时,会打开一个弹出窗口。

弹出窗口有一些形式。当用户单击提交按钮时,弹出窗口中会调用另一个脚本,如下所示:

if ((isset($_POST['Complete'])) && ($_POST['Complete']=='Complete')) {
    unset($_POST['Complete']);

    include 'result.php';

    return;
}

result.php 将数据输入数据库并将结果传递给父窗口,如下所示

<script language="JavaScript" type="text/javascript">
    window.opener.location.href = 'submission.php';
    window.close();
</script>

然后父窗口显示最终结果,更新主数据库并向用户发送电子邮件。

现在问题来了。

  1. 用户点击父母的链接。
  2. 表单打开,但用户单击关闭(浏览器十字按钮)。
  3. 然后用户关闭父窗口
  4. 然后用户访问站点的其他页面;说other.php
  5. 但主数据库正在更新,用户正在收到电子邮件(尽管所有 null 值)。

由于表单从未完成,因此永远不应调用 result.php。如果从不调用result.php,则永远不应该调用submission.php。

这里发生了什么?

【问题讨论】:

  • 你好。我已经研究了几个小时的问题。我已经走出了一个在 100% 的情况下造成异常的场景。暂时,我又检查了submission.php,它首先检查result.php 是否在数据库中插入了任何记录。如果没有记录,将通过无效的提交条目。现在这改善了用户体验,但这不是解决方案。为什么会这样?!!!!

标签: javascript php


【解决方案1】:

将关闭按钮的类型改为按钮。

【讨论】:

    猜你喜欢
    • 2012-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多