以下の条件を満たすWEBページを作成したいです。


・2フレーム(AフレームとBフレーム)に分かれている
・A・Bフレームそれぞれにフォーム部品(input)が存在している。
・submitボタンはAフレームにのみ存在
・Aフレームのsubmitボタン押下で、A・Bそれぞれのフォームの内容をBフレームにPOSTする
(POST後はPHPで処理します)

JavaScriptでいろいろ試してみましたが、フォーム部品(input)が複数フレームに分かれている場合はどうしてもPOSTできませんでした。
(A or Bどちらかの内容しかPOSTできなかったです)

方法が記載されているサイト or ソースそのものを教えてください。
(もし技術的に不可能であればそういった回答でもかまいません)

よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:2007/04/17 00:09:39
  • 終了:2007/04/24 00:10:03

回答(2件)

id:studioes No.1

studioes回答回数522ベストアンサー獲得回数612007/04/17 00:57:03

ポイント35pt

 Submit動作はFormのメソッドですので、異なるフレーム(Form)のデータ同士をそのままでは送信できません。

 但し、同一フレームセット内のフレーム間でのデータ渡しは可能です。

 従って、フレームBのhiddenフィールドへ値を渡してやればPOST可能です。

 たとえば・・・Aフレームで

parent.frames[1].document.getElementById('A_text1').value= document.getElementById("text1").value;

 の様な処理を行って、Bフレームのフォーム内に

<input type='hidden' name='A_text1' id='A_text1'>

 等のようにフィールドを用意して転送してから、フォームのSubmitを実行します。

id:jumpe

この方法で試してみました。しかし問題が・・

チェックボックスの値を取得しようとしたら、チェックのON/OFFかかわらず設定したvalueが取れてしまいます。

どうしたらよいでしょうか?

2007/04/18 00:26:52
id:kazu1107 No.2

kazu1107回答回数199ベストアンサー獲得回数142007/04/17 01:06:39

ポイント35pt

・・・メイン・・・

<html>

<head>

</head>

<FRAMESET cols="30%, *">

<FRAME src="0.htm" name="in">

<FRAME src="1.htm" name="sub">

</FRAMESET>

</body>

</html>


・・・0.htm・・・

<html>

<head>

<script>

<!--

function mySubmit(){

alert("test");

alert(parent.sub.document.form1.test.value );

parent.sub.document.form1.submit();

}

//-->

</script>

</head>

<body>

<input id="test" type="button" onclick="mySubmit();" value="送信" />

</body>

</html>

・・・1.htm・・・

<html>

<head>

</head>

<body>

<form name="form1" method="get" action="http://localhost/" target="main">

<input name="test" />

</form>

</body>

</html>



これ以外にも色々やり方はあると思いますが、今回はフォーム内容をJavaScript側で送信(submitを発生)させるという方法で実現してみました。

formのターゲット指定はお好きにどうぞ

  • id:kazu1107
    あ・・・二つのアラートはデバッグ用に入れた物でしたけど消すの忘れてました。。。orz
  • id:kazu1107
    studioes様の補足ですが、チェックボックスの値は"value"じゃなくて"checked"を参照すればいいのではないでしょうか?

    参考URL:http://www.openspc2.org/reibun/JavaScript_technique/sample/03_form/020/index.html

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません