0
cell = this.getElementsByTagName("td")[3];
uname = cell.innerHTML;

innerHTML を介して特定のセルの値を取得し、その値をサーブレットに渡します

xmlhttp.open("POST","UserServlet",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("uname="+uname);

サーブレットで

uname = request.getParameter("uname");
        out.print(uname);
        System.out.println(uname);

私はコンソールで「未定義」を取得します.......値を取得してそれをサーブレットに渡す方法はありますか.innerHTML、.innerText、.valueを試しました何も機能しませんでした、配列でも試しました....しかし何もしませんでしたうまくいきました......事前に感謝します.....

4

1 に答える 1

1

https://stackoverflow.com/a/15312976/1031191を参照してください。これは、xmlhttp コードに問題がないことを意味します。ブラウザで JavaScript コンソールを使用してuname、文字列であり、正しいデータが含まれていることを確認してください。

「未定義」を受け取るということは、 の値がunameクライアント側で正確に「未定義」であることを意味します。getParameter のリファレンスを参照してください: http://docs.oracle.com/javaee/1.3/api/javax/servlet/ServletRequest.html。String または null のいずれかを受け取る必要があることを示しています。(あなたの場合、xmlhttp.send()の引数は何らかの理由で「uname = undefined」です。)

更新 2:

document.getElementsByTagName('td')[3]おそらく「これ」の代わりに必要です。
でも、どうせ jQuery を使うなら$('td').get(3)、getElementsByTagName の代わりに書きませんか?

更新 3:

html のtd要素が 4 つ未満だと思います。JavaScript 配列のインデックスは 0 から始まることに注意してください。境界外の配列のインデックスに誤ってアクセスしようとすると、「未定義」が返されます。

于 2013-09-25T08:30:07.167 に答える