php弹出更新表单 - 关闭窗口并刷新父页面

时间:2012-06-03 14:02:55

标签: php forms

我有一个PHP Pop-Up表单,用于更新数据库中的记录。我添加了我在论坛中找到的代码,当单击更新按钮时关闭窗口。在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>

1 个答案:

答案 0 :(得分:1)

你应该:

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

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

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

    示例

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