WEB相談室

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

タイトル:window.openでform内のデータを送る方法

0:[投稿] あゆか [2002/12/16 20:45 ][環境:IE5.5 Apache]

window.open()
で新しく画面を開いたときに、
form内のデータを渡す方法はありますか?

GETで渡すしか方法はないのでしょうか?

初歩的な質問ですが、ご回答の程よろしくお願いします。


1:[回答] ごだっち [MAIL] [2002/12/16 21:41 ]

何をしたいのかによって違いますが、JavaScriptだけでも対処方法は幾らでもあります。

親フォームの内容を反映させた子ウィンドウを新規に作成したいのであれば、親フォーム内の必要なフォーム要素のvalueを取得して、新しく開いた子ウィンドウ内にdocument.write()で書き加えるという方法もあります。

子ウィンドウのフォームに、予め親ウィンドウで入力した値を引き継ぐだけなら、子ウィンドウのHTMLに、onload時に実行する以下のようなスクリプトを与えておくことでも実行可能です。
document.子フォーム.子フォーム要素.value=window.opener.document.親フォーム.親フォーム要素.value;


2:[質問] あゆか [2002/12/17 10:13 ]


説明不足ですみません。
やりたいことは、
親フレームに複数のボタンがあって、
すべて同じchild.aspを呼ぶのですが、(window.open()で新しくwindowを開きます。)
そのボタンによって表示するデータを変えたいんです。

つまりサーバー側に値をPOSTで渡して、その値によってaspでhtmlを生成したいのです。
GETで渡すと値が見えてしまうのであまりやりたくないな..という理由からです。

JavaScriptで親フレームの値を取るという方法はchild.aspローカル側の話ですよね?
サーバー側で親フレームのform値を取りたいな…という感じです。

ほんと説明不足でした。何か案があればよろしくお願い致します。


3:[回答] gun [2002/12/17 10:48 ]

<form>にtargetを指定して、新しくウィンドウを開くのはダメですか?


4:[回答] ごだっち [MAIL] [2002/12/17 11:27 ]

ボタン、ですか?
ボタンということは、「ユーザーが値を入力するようなインターフェースでは無い」、という理解で良いでしょうか?
ならば、あらかじめ各ボタンごとに「値」なり「識別可能なID・名前」を与えてあるんですよね?
それであれば、どのボタンが押されたかを示す値が見えてしまうかどうかを気にされるのは、あまり意味が無いのでは?

また、aspでhtmlを生成したい、とありますが、どうなんでしょう?
入力値が変動するなど、htmlを動的に生成しなければいけない必然性がない限り、押されたボタンに対応するページをブランクウィンドウに表示するだけの単純なリンクで良いのでは?
(ボタンの数が数十もある、とかなると別かもしれませんが)

それから、最後になりましたけれど、gunさんの仰るとおり、formのtarget指定で_blankを指定しておくと、postであれgetであれ、サーバー側で処理した結果の出力先が新規ウィンドウになりますし、あらかじめ新規ウィンドウを作っておいて、そのウィンドウ名を指定しておけば、そこに出力されるようになるはずです。


5:[回答] ごだっち [MAIL] [2002/12/17 11:30 ]


それとも、自分の勘違いでしょうか?
「post」ではターゲットの指定は出来ない、とか?

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World