我有一个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"> </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>
答案 0 :(得分:1)
你应该:
等待表单提交。服务器端可以生成一小段JavaScript然后关闭窗口。
使用jQuery(或其他)序列化表单数据并将其传递给父表单进行提交;这将允许您在处理表单时立即关闭窗口。
要让父窗口从弹出窗口执行任何操作(假设它们位于同一个域中),您可以使用opener
引用父窗口。
示例强>
让我们假设父窗口定义了一个函数helloWorld()
;从弹出窗口中,您可以将其称为opener.helloWorld()
。