javascript - PHP JavaScript : Closing Popup calling parent window in background

标签 javascript php

假设父窗口是 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. 用户点击 parent 的链接。
  2. 表单打开,但用户单击关闭(浏览器十字按钮)。
  3. 用户然后关闭父窗口
  4. 然后用户访问网站的其他页面;说其他.php
  5. 但主数据库正在更新,并且用户正在收到电子邮件(尽管全部 null 值)。

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

这里发生了什么?

最佳答案

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

关于javascript - PHP JavaScript : Closing Popup calling parent window in background,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34462612/

相关文章:

带有序数x轴的javascript d3折线图

javascript - 如何在 switch Javascript 中使用类型转换比较而不是严格比较?

javascript - 如何使用 Google Scripts 将 html 表单数据保存到 google 电子表格中?

php - url 中的 htaccess rewriterule 2 参数

php - 在 mysqli 中插入多个值的最佳方法?

javascript - 如何使 numericJS 输出 'no decimal' 并在同一变量上带有小数点?

javascript - 如何向该数组添加对象?

php - Laravel 5.6 Eloquent whereDate 和 WhereRaw 错误

javascript - 在 Laravel 中使用 ajax FormData() 时无法获取输入字段的值

php - 在 cookie 中将 httponly 属性设置为 false