• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:配列の受け渡し)

配列の受け渡しについて困っています

このQ&Aのポイント
  • JavaScriptを使用してフォームデータから配列をサーブレットに受け渡す方法を教えてください。
  • 配列の受け渡しには、フォームでsubmitボタンが押されたときに呼び出されるJavaScript関数を作成し、配列を生成し、フォームのhiddenフィールドにセットします。
  • 次に、サーブレット側では受け取ったパラメータを処理して配列に格納します。

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

  • ベストアンサー
noname#19197
noname#19197
回答No.2

ただ、分かりませんといって聞くのは簡単ですが、それでは進歩しませんよ。 分かりませんではなく、どこまで理解してどこが分からないのかを明示して下さい。 エラーが出ましたと言われても、エラー内容が見えないのに答えようがないです。 それでは、「エラーだからです。」としか回答しようがないです。 仕事でやっているのか趣味でやってるのか分かりませんが、もし趣味なら時間もたっぷりあるでしょうから自分で悩んで見て下さい。 仕事でやってるのなら、もっと責任を持ってやってください。 この問題を解決したら、その回答者に報酬がいくのですか? ここは、ただの掲示板ではないです。 ナレッジを溜めて、同じ問題を抱えている人の辞書になるものです。 ただ自分の解決のためではなく、再利用する他の人のことも考えてください。

javatea_1985
質問者

補足

了解しました。 今回からそうしますm(__)m 「どこまで理解していて」ということなのですが、 じっくり考えたところかなり明確になりました。 すごく単純なことがわかっていなくて、 javascript側で while(i<n) { var array = []; var S = eval( "document.form" + i + ".S.value" ); array[i] = S; i++; } document.frm.array.value = array; ★ <form> <input type = "hidden" value = "" name="array"> とする★の部分が分かりません。 サーブレット側に受け渡して出力するとi=n(iのとりうる最大値)の時のarrayだけは取れるのですが他がnull(もしくは空欄)になっています。 (null,null,null・・・,null,null,jdk)といった具合です。 どこがいけないのか教えて頂けますでしょうか?

その他の回答 (1)

noname#19197
noname#19197
回答No.1

JavaScriptは以下のようにして、 function push(form,value) { var e = document.createElement("input"); e.name="array"; e.type="hidden"; e.value=value; form.appendChild(e); } servleteでは、 String[] array = req.getParameterValues("array") これでできると思います。 未検証です。

javatea_1985
質問者

お礼

できました! array[i] = S; として配列を取っておいて document.frm.array.value = array; とする事でできていました。 ただ、途中で因数としてとったnと ループさせる文字として使ったiとnのnがかぶってしまっており、できているはずなのにできていませんでした。また、受け取る側にも同様のミスがあったり・・・。何がよくないのか分からなくてうまく伝えられませんで申し訳ありませんでした。。m(__)m

javatea_1985
質問者

補足

回答していただきありがとうございました。 ただ、push()を新しく関数として作ればいいのかどうか、 arrayをどのようにして配列にすればいいのかなどが分かりませんでした。 サーブレット側では String[] array = req.getParameterValues("array") として配列(?)を受け取った後 System.out.println(array[0]); としてみたもののエラーが出ました。 何がまずいのでしょうか??よろしくお願いします。m(__)m

関連するQ&A