重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

使用言語はJSPです。
画面上のラジオボタンの値を取得しているjavascriptが以下です。
これでボタンが押下されたとき、この関数を呼び出しラジオボタンのVALUE値をアラートとして表示することはできています。
これをURLパラメータとして、JSPサーバ側に送りたいと思いますが、
NULL値となってしまいます。

取得は、request.getParameter("aaa");
としていますがNULL値です。

JAVASCRIPTからURLパラメータを送付・サーバ側から取得する方法を教えていただけますか。

function check(){
var aaa = document.getElementsByName("ラジオボタンの名前");
for(var i=0;i<arr.length;i++){
if(aaa[i].checked)
var param = aaa[i].value;
aaa.action = "./bbb.jsp?param="+param;
aaa.submit();
return aaa[i].value;
}
}

A 回答 (7件)

<form name="form1" method="POST" ... onsubmit="check();">



function check(){
var formElem = document.forms["form1"]; //ラジオボタンでなくformです
var aaa = document.getElementsByName("ラジオボタンの名前");

for(var i=0;i<aaa.length;i++){
if(aaa[i].checked)
var param = aaa[i].value;
formElem.action = "./bbb.jsp?param="+param;
//formElem.submit();
return true;
}
}

a=request.getParameter("param");

取得できるかどうか私に聞かれてもなんとも。
同じ環境を再現できればもう少し的確に回答できるかもしれませんが。。。

上手くいかなければform要素だけでいいので、htmlも貼ってみてはどうでしょ。

この回答への補足

アラート表示ではどちらも上のラジオボタンの値が取得されています。
また受け渡してのログ確認後は、上は上の値、下はundefinedです。

補足日時:2011/02/24 10:31
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
上側のラジオボタンのデータはサーブレット側で取得できましたが、下側のラジオボタンの値がログで確認すると「undefined」なっています。NULLではありません。
何か原因はわかりますでしょうか。
遷移はうまくいっている感じなのですが、ボタン後の画面切り替え。

お礼日時:2011/02/24 09:55

>今回はenctypeにマルチデータを使用しているため、


ファイルを送信するために、enctype="multipart/form-data"にしているのではないですか?
getメソッドでは逆にファイルが送れなくなると思うのですが。
    • good
    • 0
この回答へのお礼

ファイルデータは送れています。
またそれを指定した場合、テキストラジオボタンなどのデータはNULLとなりますが、
URLとしてのデータは受け取れるみたいです。

お礼日時:2011/02/24 10:41

こんばんは。



お礼を拝見しましたが、この場合はちょっと事情が違います・・・。
>var aaa = document.getElementsByName("ラジオボタンの名前");
この時点で、aaaはラジオボタンの配列用変数です。

>aaa.action = "./bbb.jsp?param="+param;
>aaa.submit();
これは配列に対してaction指定してsubmitしているので、おかしいです。

>bbb.jspには飛ぶので遷移もできていますが
たまたまです。
もともとformにaction指定していませんか?

すでに#5さんが回答しておられますが、名前を別にしないといけません。
ラジオボタンの配列と、formの名前です・・・。
    • good
    • 0
この回答へのお礼

ありがとうございます。

>皆様
IF文など見直したりし、
正常に値を取得することができました。
お世話になりました。ありがとうございました。

お礼日時:2011/02/24 12:05

>>No.1 お礼



>記述はaction="URL?param="+param;
>で正しいのでしょうか。

これは意味ないですね。ハズレの回答連発で申し訳ない。
普通にGET送信すれば「ラジオボタンのname値=選択されている値」が送られます。
ラジオボタンの選択値を送るだけならスクリプトは不要です。

request.getParameter("ラジオボタンのname値");

これで受け取れるはずです。
    • good
    • 0
この回答へのお礼

ありがとうございます。
今回はenctypeにマルチデータを使用しているため、
ラジオボタンの値はNULLになってしまったため、
javascriptからURLパラメーターを渡そうと思いました。

NO2でアドバイス頂いたのをまとめて、
以下で取得できますでしょうか。

■javascript
function check(){
var formElem = document.forms["ラジオボタンの名前?"]; //IDはないため
var aaa = document.getElementsByName("ラジオボタンの名前");

for(var i=0;i<arr.length;i++){
if(aaa[i].checked)
aaa.param = aaa[i].value;
formElem.action = "./bbb.jsp?param="+param;
formElem.submit();
return aaa[i].value;
}
}

■サーブレットから呼び出し
a=request.getParameter("param");

お礼日時:2011/02/24 00:58

こんばんは。



var aaa
これはラジオボタンの配列ですよね?
aaa.action = "./bbb.jsp?param="+param;
aaa.submit();
ここは何?
    • good
    • 0
この回答へのお礼

ありがとうございます。
http://oshiete.goo.ne.jp/qa/650804.html
このサイトを参考にしました見真似です。
ラジオボタンで取得した値をreturnで返して正常にできてます。
action submit はNULLとなってますので怪しいです。

現在呼び出しは<form ~~ onsubmit= "check();">
という形で呼び出してます。
bbb.jspには飛ぶので遷移もできていますが、paramからは値がNULLです。

お礼日時:2011/02/24 00:25

ごめんなさい。

見落としてました。

var formElem = document.forms["form名前/id"];
var aaa = document.getElementsByName("ラジオボタンの名前");

...

formElem.action = "./bbb.jsp?param="+param;
formElem.submit();
    • good
    • 0
この回答へのお礼

var formElem = document.forms["form名前/id"];
が足りていないのでしょうか。
すいません、ラジオボタンの値を取得しているであろうaaaはどこで使用しているのでしょうか。

お礼日時:2011/02/24 00:43

「param=値」で送られてますから



request.getParameter("param");

ですよね。
    • good
    • 0
この回答へのお礼

ありがとうございます。
paramで行った場合もNULL値となりました。
他に間違い等あればお願いします。
記述はaction="URL?param="+param;
で正しいのでしょうか。

お礼日時:2011/02/23 21:19

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