• ベストアンサー

一定間隔ごとに、フォームにデータを入力して送信したい

(1)まず「document.フォーム名.識別名.value=データ;」でデータを入力し(2)次に「document.フォーム名.submit();」で送信すれば実現できるかと試してみたのですが、成功しませんでした。 恐れ入りますが、正しい方法を教えていただけると大変助かります。何卒よろしくお願いいたします。 ちなみに具体的には下記のように記述して試しました。 function cookie(){ //↓1クッキー(classname)を取り出し (省略); } function mySubmit(){ //↓2-(1)取り出したクッキーをフォームに入れて document.myFORM3.cname.value=classname; //↓2-(2)フォームの送信 document.myFORM3.submit(); } // --></script> </head> <body onLoad=\"cookie();setTimeout(\'mySubmit()\',20000)\"> ↑ページが読み込まれたら 1クッキーを取り出して 2(1)それを20秒ごとにフォームに入れて(2)送信 <form name=\"myFORM3\" method=\"post\" action=\"A.cgi\" target=\"I2\"> ↑送信結果はインフレームに表示 <input type=\"hidden\" name=\"cname\"> </form> <iframe name=\"I2\" width=\"756\" height=\"162\" ></iframe> 何卒よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • me_no_car
  • ベストアンサー率24% (22/90)
回答No.2

>「document.フォーム名.識別名.value=データ;」でデータを入力した後(2)「document.フォーム名.submit();」でこれを送信しようとすると、データが空の状態で送信されるようなんですが cookie() で取得したclassnameってグローバル宣言して ますか?

oomiyaji
質問者

補足

度々ご指導いただき、ありがとうございます。ご指摘頂いた点が、原因かもしれません。恥ずかしながら、実はグローバル宣言という言葉自体知らなかったのですが、クッキーを取り出す記述を、{}の外に出したら、上手く動作しそうです。本当にありがとうございます。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • ryota2
  • ベストアンサー率43% (61/140)
回答No.1

まず、HTMLタグの属性値の引用符を「\"」と書いているのが問題だと思います。 20秒ごとならsetInterval('mySubmit()',20000); とします。 setTimeoutはスクリプトをn秒後に実行します。 以上の2点を直せば動きます。 もちろん「function cookie(){」の前に 「<script type="text/javascript"><!--」 を書いてくださいね。 >↑送信結果はインフレームに表示 正しくはインラインフレームです

oomiyaji
質問者

補足

間違いをご指摘いただき、また、アドバイスをいただきありがとうございます。質問中に多くのミスがありましたことをお詫びします。 (1)「document.フォーム名.識別名.value=データ;」でデータを入力した後(2)「document.フォーム名.submit();」でこれを送信しようとすると、データが空の状態で送信されるようなんですが、もしかして「body onLoad」では、フォームが表示される前、あるいはフォームにデータが入力される前に送信されてしまうのでしょうか。恐れ入りますが、お心あたりや対策がございましたら、ご教授いただけないでしょうか。よろしくお願いいたします。

すると、全ての回答が全文表示されます。

関連するQ&A