2012-06-03 233 views
0

我有一個PHP彈出式窗體,用於更新數據庫中的記錄。我添加了代碼,當我點擊更新按鈕時,我在論壇中找到關閉窗口的代碼。在FireFox和IE中運行良好,但在使用Chrome時不起作用。關於如何解決這個問題的任何想法?php彈出窗口更新 - 關閉窗口並刷新父頁面

當彈出窗口關閉播種彈出窗體所做的更改時,我還想要父頁更新/刷新。我不知道這件事。

代碼:

<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> 
+0

關閉仍在提交表單的窗口是個不錯的主意。在關閉之前,您應等待表單提交完成。 –

+0

@Jack - 那麼你會建議一個提交表單的第二個按鈕來關閉窗口嗎? – Rick3rd

回答

1

您應該:

  1. 等待表單提交。服務器端可以生成一小段JavaScript,然後關閉窗口。

  2. 使用jQuery(或其他)序列化表單數據並將其傳遞給父級以供提交;這將允許您在窗體正在處理時立即關閉窗口。

爲了讓父窗口從彈出做任何事(假定他們在同一個域),則可以使用opener引用父。

假設定義的函數helloWorld()父窗口;從彈出窗口中,您可以將它稱爲opener.helloWorld()

+0

那麼,我將放在父頁面上的代碼是什麼,以及我將在彈出窗口中放置的代碼是什麼?我是新手。 – Rick3rd

+1

@ Rick3rd然後做選項#1 :) –

+0

任何想法爲什麼我的代碼不能在Chrome中工作,但在IE和Firefox的工作? – Rick3rd

相關問題