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

javascript内の変数を複数行のフォームでCGIに渡したいのです。
その際のコードが
document.write("<form name='form1' action='xxx.cgi' method='post' enctype='text/plain'>"+
          "<input type='hidden' name='state' value=''>"+
          "<input type='hidden' name='state2' value=''>"+
          "</form>"+
          "<input type='button value='送信' onClick='tocgi(a,b)'>");

      tocgi(n1,n2){
      document.form1.state.value=n1;
      document.form1.state2.value=n2;
      document.form1.submit();
       }
なのですが、a、bの値がそれぞれ10、20だった時、一行目のフォームデータは出力されるのですが、2行目が出力されないのです。実行結果でいうとstate=10ですね。引数を一つにしても同じでした。何がいけないのか、全然わかりません…。それとも、CGIのコードの書き方に問題があるのでしょうか。でも、CGIの方は変えずに単純にHTMLで記述すると上手くいくみたいなんですよね。どなたかわかる方がいたら助けて下さい!

A 回答 (1件)

・ 間違いが幾つかありましたので、



  以下のコードを参考にしてみてください。

------------------------------------------------------------
<html>
<head>
<script type="text/javascript">
var a=10;
var b=20;
document.write("<form name='form1' action='p_query.jsp' method='post'>"+
"<input type='hidden' name='state' value=''>"+
"<input type='hidden' name='state2' value=''>"+
"<input type='button' value='送信' onClick='tocgi(a,b);return false;'></form>");

function tocgi(n1,n2){
document.form1.state.value=n1;
document.form1.state2.value=n2;
document.form1.submit();
}
</script>
</head>
<body>
<h1>TEST</h1>
</body>
</html>
    • good
    • 0

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