ここから本文です

JSPとJavaScriptの連携サイトを作っています。 JavaScriptからJSPへformからPOST...

deg********さん

2010/11/1220:21:19

JSPとJavaScriptの連携サイトを作っています。
JavaScriptからJSPへformからPOSTする場合jsp側でrequest.getParameter("name")
で取得しようとしているのですが、nullが返って来ます。
ご教授いただけないしょうか? 以下のようなソースです。
★★★★★★クライアント側 HTML★★★★★★
<html>
<head>
<title>無題ドキュメント</title>
</head>
<body>
<table id="tableJ">
<input type="button" value="最下行に1行挿入" onclick="fTalbeInsertRow()" />
<input type="button" value="最下行から1行削除" onclick="fTalbeDeleteRow()" />
<td align="center">担当者</td>
<tr>
<td><input type="text" name="staff' + counter + '" value="" size="20" maxlength="20" ></td>
</tr>
</table>
<script type="text/javascript">
var counter=1;
var tantou="";
function fTalbeDeleteRow(){
counter--;
var tObj=document.getElementById("tableJ");
/* 行数 */
var idx=tObj.rows["length"];
/* 1行挿入(最終行から削除)*/
tObj.deleteRow(idx-1);
}
function fTalbeInsertRow(){
counter++;
var tObj=document.getElementById("tableJ");
/* 行数 */
var idx=tObj.rows["length"];
//var idy=idx+1;
/* 1行挿入(最終行に挿入)*/
var insObj=tObj.insertRow(idx);
var n=insObj.insertCell(0)
test = document.createElement("input");
test.type = "text";
test.name = "staff"+counter;
test.value = "";
test.size = "20";
test.maxLength = "20";
n.appendChild(test);
}
</script>
</body>
</html>
★★★★★★サーバー側JSP★★★★★★
<%@ page contentType="text/html; charset=shift_jis" import="java.sql.*"%>
<%@ page pageEncoding="Windows-31J"%>
<% request.setCharacterEncoding("Windows-31J"); %>

<%
String staff1=request.getParameter("staff1");
%>
担当者
<%out.println(staff1);%>

補足すみません。formタグが無かったのは私の投稿ミスでした
ただご回答頂いたpostでも投稿以前になんどか試したのですが
やはりJSP側でnullになっておりました
こういた、javascritからの変数のPOSTはJSP側で受け取る事は出来ないのでしょうか

閲覧数:
1,276
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

sho********さん

編集あり2010/11/1310:12:19

どこで、POSTしているのか(HTTPリクエストを送っているのか)、このソースからは、わかりませんでしたが、サブミットしているのなら、以下のようにformタグが無いせいではないでしょうか?
<form method="post">
<input type="text" name="staff' + counter + '" value="" size="20" maxlength="20" >
</form>

追記:
じゃあ、↓ここが間違いではないでしょうか?w
<td><input type="text" name="staff' + counter + '" value="" size="20" maxlength="20" ></td>
ここはJavaScriptじゃないので、counterは使えませんなので、この項目の名前が"staff' + counter + '"になってしまってるんだと思いますw
String staff1=request.getParameter("staff' + counter + '");
↑こうするかw
<td><input type="text" name="staff1" value="" size="20" maxlength="20" ></td>
↑こうしてみてはどうでしょうか?w

質問した人からのコメント

2010/11/14 01:11:01

一安心 何度もご回答ありがとうございました!やっと出来上がりました!原因はやはりご指摘いただいた<form>タグ内の<name>属性の書き方にありました。本当にありがとうございました。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる