【问题标题】:php pop-up update form - close window and refresh parent pagephp弹窗更新表单-关闭窗口并刷新父页面
【发布时间】:2012-06-03 14:02:54
【问题描述】:

我有一个更新数据库中记录的 PHP 弹出表单。我添加了我在论坛中找到的代码,以在单击更新按钮时关闭窗口。在 FireFox 和 IE 中运行良好,但在使用 Chrome 时无法运行。关于如何解决此问题的任何想法?

我还希望在弹出窗口关闭时更新/刷新父页面,以播下弹出表单所做的更改。我不知道该怎么做。

代码:

<script type="text/javascript">     
function closeSelf(){
   document.forms['form1'].submit();
   window.close();
}
</script> 


<form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1">
  <table align="center" class="BulletList">
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">Weight:</td>
      <td align="center"><input type="text" name="icmWeight" value="<?php echo $row_SKUUpdateDIMs['icmWeight']; ?>" size="5" /></td>
    </tr>
    <tr valign="baseline">
      <td nowrap="nowrap" align="right">Length:</td>
      <td align="center"><input type="text" name="icmLength" value="<?php echo $row_SKUUpdateDIMs['icmLength']; ?>" size="5" /></td>
    </tr>

    <tr valign="baseline">
       <td nowrap="nowrap" align="right">&nbsp;</td>
       <td><input type="button" value="Update record" onclick="closeSelf();" /></td>
    </tr>
  </table>
       <p>
       <input type="hidden" name="MM_update" value="form1" />
       <input type="hidden" name="icmKEY" value="<?php echo $row_SKUUpdateDIMs['icmKEY']; ?>" />
        </p>
</form>

【问题讨论】:

  • 关闭仍在提交表单的窗口是个坏主意。您应该等待表单提交完成后再关闭它。
  • @Jack - 你会建议一个提交表单的更新按钮和一个关闭窗口的第二个按钮吗?

标签: php forms


【解决方案1】:

您应该:

  1. 等待表单提交。服务器端可以生成一小段 JavaScript,然后可以关闭窗口。

  2. 使用jQuery(或其他)将表单数据序列化并传递给父级提交;这将允许您在处理表单时立即关闭窗口。

要让父窗口在弹出窗口中执行任何操作(假设它们在同一个域中),您可以使用 opener 引用父窗口。

示例

假设父窗口定义了一个函数helloWorld();从弹出窗口中,您可以将其称为 opener.helloWorld()

【讨论】:

  • 那么我要在父页面上放什么代码,我要在弹出窗口中放什么代码呢?我是新手。
  • @Rick3rd 然后执行选项#1 :)
  • 对我上面的代码为什么不能在 Chrome 中运行但在 IE 和 Firefox 中运行有任何想法吗?
  • @Rick3rd 可能在 Chrome 中,它会在窗口关闭时取消提交。
猜你喜欢
  • 1970-01-01
  • 2012-06-03
  • 1970-01-01
  • 2016-12-19
  • 2012-07-09
  • 2011-05-15
  • 1970-01-01
相关资源
最近更新 更多