WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:Modalからの送信結果を親画面に表示。

0:[投稿] Yachimata [2003/03/27 14:24 ][環境:win98,IE6 わからない]

こんにちは。
質問があります。

まずある画面からボタンクリックで showModalDialog を使って子画面を表示します。
そして、その子画面から送信ボタンを押し、その結果を親画面で受け取りたい、という事は可能でしょうか?


1:[回答] chintara [2003/03/27 17:57 ]

こんな感じでどうでしょう。

<!-- parent.html -->
<script>
function functionA() {
   var ret = showModalDialog('child.html');
   alert('ダイアログからの戻り値:' + ret);
}
</script>
<input type="button" value="ダイアログを開く" onclick="functionA();">

<!-- child.html -->
<script>
function functionB() {
   returnValue = document.formA.textA.value;
   close();
}
</script>
<form name="formA">
<input type="text" name="textA">
<input type="button" value="送信" onclick="functionB();">
</form>


2:[質問] Yachimata [MAIL] [2003/03/28 09:15 ]

おはようございます。
chintara さん、回答ありがとうございます。

ただ、私の説明が足りなかったのでしょうか、
私のやりたい事とは少し違っていまして・・・

chintara さんの記述してくださったソース例で言いますと、
child.html の formA を submit して、その結果を parent.html が表示されているウィンドウで受け取りたい。child.html のウィンドウは閉じる。
と、いったものなのです。

form の target に showModalDialog で開いた親ウィンドウを指定するような方法があればと思ったのですが・・・


3:[回答] chintara [2003/03/28 10:34 ]

じゃあ、こんな感じ。

<!-- parent.html -->
<script>
name = 'parent';
function functionA() {
  showModalDialog('child.html', name);
}
</script>
<input type="button" value="ダイアログを開く" onclick="functionA();">

<!-- child.html -->
<script>
function functionB() {
   document.formA.target = dialogArguments;
   document.formA.submit();
   close();
}
</script>
<form name="formA" action="parent.html">
<input type="text" name="textA">
<input type="button" value="送信" onclick="functionB();">
</form>


4:[質問] Yachimata [MAIL] [2003/03/28 13:21 ]

chintara さん、引き続き有難うございます。
テストしてみましたが、元の親ウィンドウとは別に新しいウィンドウが立ちあがってしまいました。

疑問に思ったのですが、親ウィンドウが "parent" という名前のウィンドウだというのは showModalDialog() を用いた時点で自動で決定される事なのでしょうか?


5:[回答] chintara [2003/03/28 13:49 ]

いえ「name = 'parent';」で勝手に定義してました。

もう一発。(Win2000・IE6SP1でのみ確認)

<!-- parent.html -->
<script>
function functionA() {
 showModalDialog('child.html', window);
}
</script>
<input type="button" value="ダイアログを開く" onclick="functionA();">

<!-- child.html -->
<script>
function functionB() {
  dialogArguments.name = 'parent';
  document.formA.target = 'parent';
  document.formA.submit();
  close();
}
</script>
<form name="formA" action="parent.html">
<input type="text" name="textA">
<input type="button" value="送信" onclick="functionB();">
</form>


6:[完了] Yachimata [MAIL] [2003/03/28 15:35 ]

chintara さん、引き続き有難うございます。
テストしてみました。良い感じっぽいです。

ちょっと手を加えさせて頂いて、

function functionA() {
window.name = "papa";
showModalDialog("child.html");
}

function functionB() {
 document.formA.target = "papa";
 document.formA.submit();
 close();
}

こんな感じでも行けました。

ありがとうございました!!!!

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World