我有一个正在运行的动态下拉列表 -
<form action="" name="myform" id="myform" method="post">
<div>
<strong>Show Asset Type</strong>
<select name="assettypeid" id="assettypeid" onchange="typechanged();">
<sql:query var="queryresults" dataSource="jdbc/icantrack">
SELECT id, name FROM assettype order by name
</sql:query>
<option value="1">-- All Asset Types--</option>
<c:forEach var="row" items="${queryresults.rows}">
<option value="<c:out value="${row.id}"/>"
<c:if test="${row.id == param.assettypeid}">
<c:out value="selected"/>
</c:if>
><c:out value="${row.name}" />
</option>
</c:forEach>
</select>
</div>
</form>
我知道我可以使用javascript确定所选值 -
function typechanged()
{
typechosen = document.getElementById("assettypeid").value;
但是我想在jsp中进一步使用单独的sql select中使用typechosen(因此javascript变量没用)
我相信我的选择是 -
POST - 但是这个(在我的情况下)必须回到同一个jsp,我不希望任何东西向URL附加任何内容(因为我的页面将不再显示)。我可能不得不使用GET,因为我不想要愚蠢的“你确定要从浏览器再次发送相同的数据”消息。
mysql获取对象 - 但是所有这些例子似乎都不起作用?
还有别的(这很简单,我没有看到?
我需要能够“存储”下拉列表的选定值,然后在另一个选择中恢复/使用它,即 -
其中assettypeid类似于&lt;%= typechosen%&gt;
任何想法都赞赏。
答案 0 :(得分:0)
只需在post请求中获取assettypeid字段的值,实际上这不是由JavaScript完成的,而是由服务器端完成的。 并且你不需要onchange =&#34; typechanged();&#34;
示例代码如下:
<c:when test="${empty param.assettypeid }">
<select name="assettypeid" id="assettypeid">
<sql:query var="queryresults" dataSource="jdbc/icantrack">
SELECT id, name FROM assettype order by name
</sql:query>
<option value="1">-- All Asset Types--</option>
<c:forEach var="row" items="${queryresults.rows}">
<option value="<c:out value="${row.id}"/>"
<c:if test="${row.id == param.assettypeid}">
<c:out value="selected"/>
</c:if>
<c:out value="${row.name}" />
</option>
</c:forEach>
</select>
</c:when>
<c:otherwise>
Hello <b><c:out value="${param.assettypeid}" /></b>!
</c:otherwise>