2

在我的 JSP 中,我有一个下拉框和一个项目表(使用 for 循环),每个项目都是其自己的表单,所有这些都进入同一个 servlet。我的问题是在哪里放置下拉框选择。我不想把它放在项目表单中,因为每个项目都会有一个下拉列表。但是如果我制作一个单独的表单,当我提交项目表单时,我无法从 servlet 中获取下拉参数。我需要获取下拉参数和项目参数。关于解决这个问题的任何想法?有没有办法在项目表单中隐藏输入来存储下拉表单中的选定值?我没有使用任何javascript。

4

2 回答 2

0

把它换成其他形式。在每个项目表单上创建一个隐藏字段。

<select id="DD">
  <option value="1">1</option>
  <option value="2">2</option>
  <!-- so on ... -->
</select>

<form id="i1">
<input type="hidden" id="dropDownValue" value="">
<!-- your code -->
</form>
<form id="i2">
<input type="hidden" id="dropDownValue" value="">
<!-- your code -->
</form>
<form id="i3">
<input type="hidden" id="dropDownValue" value="">
<!-- your code -->
</form>
<form id="i3">
<input type="hidden" id="dropDownValue" value="">
<!-- your code -->
</form>

现在,在提交之前通过 JS 设置隐藏字段“dropDownValue”的值。

于 2013-11-15T08:16:57.433 回答
0

我会重新考虑为每个项目设置一个表格。所有项目的一个表格,包括选择框,就足够了。所以而不是:

<select>...</select>
<form><input type="hidden" name="id" value="1"/><input type="submit" value="Edit"/></form>
<form><input type="hidden" name="id" value="2"/><input type="submit" value="Edit"/></form>

你可以有

<form>
    <select>...</select>
    <input type="submit" name="edit:1" value="Edit"/>
    <input type="submit" name="edit:2" value="Edit"/>
</form>

在您的 servlet 中,您将遍历所有请求参数 ( request.getParameterNames()) 并查找以edit:前缀开头的参数。如果你找到一个,只需子跟踪前缀,你就会得到你的项目的标识符,否则应该在某个隐藏字段中发送。您的选择框的值也将被发送。如果您需要其他操作,例如“删除”,您可以简单地在同一个 HTML 表单中添加更多具有不同前缀的提交输入。

于 2013-11-15T08:33:46.903 回答