WEB相談室

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

タイトル:子フレームにデータをPOST

0:[投稿] air [2002/07/11 16:07 ][環境:WIN+IE UNIX系+Java]

ページ1から、ページ2(フレーム)の子フレーム内にデータを「POSTで」渡したいのですが、可能でしょうか?

フレームにデータを送信して、そこからGET渡しで子フレームに渡すことは出来るのですが、GETを使ってはいけないというので困っています。

どなたか良い案がありましたらご教授ください。


1:[回答] trim9 [2002/07/11 16:59 ]

JavaScriotでできるようです。
function submit(form_name,frame_name,url,method_type){
 document.form_name.method = method_type;
 document.form_name.target = frame_name;
 document.form_name.action = url;
 document.form_name.submit();
}

<FORM name="form_name" onSubmit="submit('form_name',frame_name','url','POST'">〜</FORM>
というような感じで。


2:[質問] air [2002/07/11 18:06 ]

さっそくのご回答ありがとうございます。

試してみたのですがパラメータが渡ってこないようなので、GETにして試したら、どうもパラメータはページ2フレームの方に渡っているようです。
あと現ウィンドウではなく、新規にウィンドウが開いてしまうので、frame_nameという名のサブウィンドウを開く動作になっているのではと思うのですが…。(的外れだったらすみません)


うーん。どうしてgetで受け渡せるデータ量に制限があるんだ〜〜


3:[回答] trim9 [2002/07/11 21:16 ]

method_type、frame_name、form_name、urlは変数であり、例です。
各自、適した値に変更しないと。
サブウィンドウが開いてしまうのは目的のフレームの名前を指定していないからじゃないでしょうか?


4:[回答] trim9 [2002/07/11 21:34 ]

「サブウィンドウが開いてしまうのは目的のフレームの名前を指定していないからじゃないでしょうか? 」はまとはずれっぽいです。すみません。

フレーム2に値が渡っているなら、目的のフレームには最初ダミーのページを表示させといて、フレーム2から再び目的のフレームに値を渡すってのはだめでしょうか?


5:[回答] バギンズ [2002/07/11 22:56 ]

CGI等を経由しない限りPOSTしたデータは渡せないと思います。

GETを使わないのなら、考え方を変えて別の方法でページ1のフォームデータを渡すようにしてはどうでしょう?

方法1:Cookieを経由して渡す(やはりサイズには限界がある)

方法2:フレームセットにJavaScriptの変数を用意して、その変数を経由して渡す。(下記参照)

  フレームセット(ここに変数を用意)
    ページ1フレーム
    ダミーフレーム(サイズ0のフレーム)

ページ1からページ2へPOSTする時にフォーム内のデータをフレームセットの変数へセットする。

POST後
  フレームセット(ページ1のフォームデータが入った変数)
    ページ2フレーム(フレームセット)
      ページ2の子フレーム1(親の親のフレームにある変数を参照)
      ページ2の子フレーム2
    ダミーフレーム

※サイズ0のダミーフレームを置くのは、2フレーム以上ないとエラーになるブラウザがある為。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World