プロが教えるわが家の防犯対策術!

JavaScpript の open.window を使うと、値がGET で渡ってしまいます。
POST でデータを渡したいので、FORM で window を 3つ開く方法って
ないでしょうか?

<FORM method=POST name=form1 target="window1" ACTION="/cgi-bin/search1.pl">
<input type="text" name="searchword1">
</form>
<FORM method=POST name=form1 target="window2" ACTION="/cgi-bin/search2.pl">
<input type="text" name="searchword2">
</form>
<FORM method=POST name=form1 target="window3" ACTION="/cgi-bin/search3.pl">
<input type="text" name="searchword3">
</form>

の 3 つのフォームを 1 つの
<input type="submit" name="Search" value=" 検索 ">
で起動させるってことです。
(または、open.windows で値を渡すとき、POST で渡したい)

よろしくお願いします。

A 回答 (2件)

submitボタンを押下したときに、順番に各FORMをsubmitかけてやればいいのでは?


ちなみにformの名前は別々に付けた方がいいと思います。
それぞれに違う名前をつけたとして、

funtion OpenWin(){
 document.form1.submit();
 document.form2.submit();
 document.form3.submit();
}

とすれば、ぽこぽこ出てきますけど。

それと、targetは"_blank"にする方がいいと思いますよ。
まぁ、同名のwindow名がなければ、別windowで開きますが、"window1"という名前のwindowを持っている他の人のサイトを別ブラウザで開いていたら、そちらが書き変わっちゃいます。

window.openに、POSTでデータを渡すことは不可能です。
ただし、一度window.openで開いたwindowを、submitで書き換えることは可能です。
targetのnameはbluemintさんが書かれている物そのままで、

funtion OpenWin(){
 window.open('URL','window1','設定');
 window.open('URL','window2','設定');
 window.open('URL','window3','設定');

 document.form1.submit();
 document.form2.submit();
 document.form3.submit();
}
* URLと設定はしかるべき値を入れてくださいね。

と、ダミーで三つwindowを開いておいて、それに対してsubmitすれば、POSTでデータが渡せるかもしれません。

今手元に環境がなくてテストができないので、あくまでも「渡せるかもしれない」ですが・・・。
真っ白なダミーhtmlを一つ用意して置いて開けばいいと思います。
    • good
    • 0
この回答へのお礼

POST データはまだ渡してませんが、教えて頂いたやり方で
Window が開きました。なんか出来そうなカンジです。

ありがとうございます。

お礼日時:2002/02/15 02:16

No.1 の回答の補足を。



HIROYO> と、ダミーで三つwindowを開いておいて、それに対してsubmitすれば、POSTでデータが渡せるかもしれません。

渡せますよ。

仮に開いておくウィンドウには、真っ白なダミーを用意しておいても良いし、
about:blank を指定しても良いです。

window.open('about:blank', ウィンドウ名, オプション);
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!