- - PR -
iframeにPostでデータを渡したい
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-03-09 14:09
msoです。
ASP.NETというよりはJavaScriptの質問になってしまいますが、 ご存知の方や助言をいただけるかたいたらよろしくお願いします。 現在、 <html> <head> <title>test</title> <script> function yobidashi(){ var hoge = 'foo'; document.all.Sample1.src = 'test2.aspx?' + hoge; } </script> </head> <body onload="yobidashi()"> <form id="Sapmel_Form01" method="post" runat="server"> <iframe id="Sample1" name="Sample1" frameborder="0" height="100%" width="100%" scrolling="no"></iframe> </form> <form id="Sapmel_Form02" method="post" > <input type="hidden" id="Form02_text" name="Form02_text" runat="server"> </form> </body> </html> というようなtest.aspxを呼び出しての中にあるtest2.aspxを 表示させています。 今まではtest2.aspxに対してQueryStringでデータを渡していたのですが、 大量のデータをtest2.aspxに渡さないといけなくなりました。 そこで、Postを使いtest2.aspxにデータを渡そうとしてるのですが、 うまくいきません。 Sapmel_Form02というFORMを作成し、そこにHIDDENを作成し、 どこかのタイミングでSubmitさせればいいと思っているのですが、 具体的になかなかうまくいきません。 まとめると件名の通りなのですが、iframeにPostでデータを渡したいのですが、 渡すことができません。 どのような方法をとればよいのでしょうか? #Cookieやセッション変数はシステムの都合上使うことを禁止されているので、 #使うことができません。 [ メッセージ編集済み 編集者: mso 編集日時 2004-03-09 14:24 ] | ||||||||
|
投稿日時: 2004-03-09 14:22
Sapmel_Form01のtargetをSample1にしてあげればいいのでは?
| ||||||||
|
投稿日時: 2004-03-09 14:32
返信ありがとうございます。 targetを指定したのですが、だめでした。 ちょっと良くわからないので逆に質問をしたいのですが、 Form02_textの値をPostしたいのですがなぜSample1にtargetの 指定をするのでしょうか? 何かJavaScriptでやるのであればSample2に対して何かをしないと いけないと思うのですが? | ||||||||
|
投稿日時: 2004-03-09 14:45
焼きそばです。 だめでしたか。 targetをSample1にするとtest2.aspxにPOSTします。 で、Sample2というのはFormのことですか? ソース中に見つかりませんが。 だとすると、Sample2のFormのtargetをIFRAMEにしてあげればどうなりますか? #IFRAMEをFormで囲む必要はないのかも。 | ||||||||
|
投稿日時: 2004-03-09 15:09
msoです。
返事ありがとうございます。
んー、POSTされていません。
おっしゃるとおりSapmel_Form02のFORMのことです。 ただ、Sapmel_Form02のFORMはrunat=serverがされていないので、 TARGETされないと思います。 | ||||||||
|
投稿日時: 2004-03-09 17:43
とりあえず表題にお答えするなれば、ボタン押下時か何かにjavascriptで
Form1.target=・・//ターゲットをiframeに指定 Form1.action=・・//よみこむページ(POST先)を指定 Form1.method="POST";//(最初からPOSTになっているかも) Form1.submit();//サブミット return false;//これも必要かも でいけるのではないでしょうか。 ただ、POST先が普通のASPとかなら問題ないのですが、ASP.NETの場合は VIEWSTATEの関係上うまくいきません。そこで、POST先aspxのPageディレクティブで enableViewStateMacにfalseを指定する必要があるみたいです。 #enableViewStateMacって、VS.netではデフォルト表示がfalseなのに #ディレクティブに何も書かなかった場合の既定値はtrue?? | ||||||||
|
投稿日時: 2004-03-10 07:43
msoです。
すいません、会社からアクセスできなかったもので自宅から投稿しています。 理解不足でもうしわけなかったのですが、焼きそばさんのアドバイスをよ〜く 考え直したらできました。 <form id="Sapmel_Form02" method="post" target="Sample1" action="test2.aspx"> こんな感じです。 runat="server"をつけるとうまく動作しなかった気がします。 |
1