oooooooooooooooooooooooooooooooooooooooooooooo
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
<input type="hidden" name="hidden" value="<%= bean.getNo() %>">
10個の要素を作成してもname="hidden"
の要素が作成されるので、そのようになっています。
以下のようにnameにも連番を付与したりしてはどうでしょうか。
<input type="hidden" name="hidden-<%= bean.getNo() %>" value="<%= bean.getNo() %>">
投稿2016/07/10 02:44
総合スコア509
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/10 09:58
2016/07/10 10:02
2016/07/10 10:11
0
ベストアンサー
<input type="submit">
でフォーム内容の送信をした場合は、<form>
内にある入力項目がすべて送信されます。今のままですと、出力されるHTMLは次のようになってしまいますね。
html
1<form> 2 <tr> 3.... 4 <input type="hidden" name="hidden" value="1"> 5 <input type="submit"> 6.... 7 </tr> 8 <tr> 9.... 10 <input type="hidden" name="hidden" value="2"> 11 <input type="submit"> 12.... 13 </tr> 14 <tr> 15.... 16 <input type="hidden" name="hidden" value="3"> 17 <input type="submit"> 18.... 19 </tr> 20.... 21 <tr> 22.... 23 <input type="hidden" name="hidden" value="10"> 24 <input type="submit"> 25.... 26 </tr> 27</form>
と、このように、formからhiddenの名前で1~10の値が常に送信され、サーバ側(Servlet|JSP)では、おそらくその最初の値を取得するようなコードを書いているため、常に先頭の1を削除しようとするでしょう。
一番かんたんな方法としては、次のようにしてJavaScriptも併用するのが良いですね。
html
1<form method="post" action="servlet" name="form"> 2<table> 3.... 4<tr> 5 <td> 6 <input type="button" value="削除" onclick="delete(<%= bean.getNo() %>)"> 7 </td> 8</tr> 9... 10<input type="hidden" name="hidden" id="hidden" value="" /> 11</table> 12</form>
javascript
1var delete(num) = function() { 2 document.getElementById('hidden').value = num; 3 document.form.submit(); 4}
hidden形式で送信する場合でどうにも動きがおかしい場合は、一度textにしてみるか、ブラウザのデバッグモード(F12)で出力されているHTMLの内容を確認しながら行いましょう。
投稿2016/07/10 02:38
総合スコア12011
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。