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 に答える