选择下拉值并在sql select中使用

时间:2018-04-09 08:54:06

标签: javascript mysqli

我有一个正在运行的动态下拉列表 -

<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;

任何想法都赞赏。

1 个答案:

答案 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>