0

新しいポップアップウィンドウを開き、データベースに値を挿入しようとしています。その後、現在のウィンドウに1つの値を返します。新しいポップアップウィンドウを開いて[戻る]をクリックすると、値が返されますが、[送信]をクリックして後で返すと、値が返されません。これは、送信ボタンで新しいウィンドウが更新されるためだと思います。そのため、値は返されません。

メインページ

<form></form>

<form>
<input name="maparea" size="2" type="TEXT">
<input onclick='targetitem = document.forms[1].maparea; dataitem = window.open("popup.php", "dataitem", "toolbar=no,menubar=no,scrollbars=yes"); dataitem.targetitem = targetitem' value="Get Value" type="button">
</form>

ポップアップウィンドウ

<script>
   function select_item(item){
      targetitem.value = item;
      top.close();
      return false;
   }
</script>

<form  action="" method="post">
   <input type="submit" name="sub" value="Submit" />
   <input type="button" name="re" value="Return" onclick='return select_item("3")' />
</form>

そのための解決策はありますか?最初に欲しいものを提出した後、値を返します

4

3 に答える 3

2

ポップアップで、送信ボタンにonclickイベントをフックして、送信前に実行されるようにします。次に、onclickハンドラーで次の操作を行います。

window.opener['dataitem'] = <your return value>;

次に、送信後、親ウィンドウにその値が設定され、次のようにアクセスできます。

var somevariable = window['dataitem'];
于 2012-11-09T04:21:30.680 に答える
1
function setColor(color){ if (opener && !opener.closed){ opener.document.theForm.theField.value = color; opener.focus(); } window.close(); } ... <td width="30" bgcolor="#FFFF00" onclick="setColor(this.bgColor)">&nbsp;</td>
Read more at http://www.codingforums.com/showthread.php?t=61319#gkH9pd6gdgvxYqQZ.99 
于 2012-11-09T04:27:32.100 に答える
0

これはどう?

  1. ポップアップを開きます。
  2. ポップアップで:AJAXを介してフォームを送信します(ページの更新を回避するため)。
  3. ポップアップの場合:AJAX呼び出しの成功ハンドラーで、目的の値を取得し、を使用して値を返しwindow.opener、ポップアップを閉じます。
于 2012-11-09T04:22:14.033 に答える