0

我有一个更新数据库中记录的 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>
4

1 回答 1

1

您应该:

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

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

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

例子

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

于 2012-06-03T14:19:28.647 回答