![](/img/trans.png)
[英]I want to display the quantity of the selected item of a drop down list in a textbox. The data is stored in database
[英]Display Selected Data from database in drop down list
我的目标是在数据库中选择数据并显示在下拉列表中。
例如,请参见下图,显示fbMenuId = M001(千层面)。
因此,将在下拉列表中选择M001选项。 我还需要显示其他菜单,例如M002,M003,M004,M005,M006和M007。 例如,请参见下图
但是,我的结果是
以下是我的代码
<select class="form-control" name="menu" id="menu">
<option value="${order.fbMenuId}" selected>${order.fbMenuName}</option>
<c:forEach var="menu" items="${menu}">
<option value="${menu.fbMenuId}">${menu.fbMenuName}</option>
</c:forEach>
</select>
我可以显示M001千层面。 但是,有2个我不想要的千层面。 有人请帮助我。 帮助将不胜感激。 提前致谢!
以下是Servlet和数据访问对象的代码。
Servlet的
OrderDAO dao = new OrderDAO();
request.setAttribute("order", dao.getOrder(fbOrderId));
request.setAttribute("menu", dao.getMenu(restaurant));
OrderDAO
public OrderBean getOrder(Integer fbOrderId) {
OrderBean ob = new OrderBean();
try {
currentCon = ConnectionManager.getConnection();
Statement statement = currentCon.createStatement();
ResultSet rs = statement.executeQuery("SELECT fborders.fbMenuId, fbMenuName FROM fborders INNER JOIN fbmenu ON fborders.fbMenuId = fbmenu.fbMenuId WHERE fbOrderId='"+ fbOrderId + "'");
while (rs.next()) {
ob.setFbMenuId(rs.getString("fbMenuId"));
ob.setFbMenuName(rs.getString("fbMenuName"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return ob;
}
public ArrayList getMenu(String restaurant) {
ArrayList<OrderBean> am = new ArrayList<OrderBean>();
try {
currentCon = ConnectionManager.getConnection();
Statement statement = currentCon.createStatement();
ResultSet rs = statement
.executeQuery("SELECT fbMenuId, fbMenuName FROM fbmenu WHERE fbRestaurantId='"
+ restaurant + "'");
while (rs.next()) {
OrderBean ob = new OrderBean();
ob.setFbMenuId(rs.getString("fbMenuId"));
ob.setFbMenuName(rs.getString("fbMenuName"));
am.add(ob);
}
} catch (SQLException e) {
e.printStackTrace();
}
return am;
}
据我了解,您正在两次显示所选值。 通过追加一次
<option value="${order.fbMenuId}" selected>${order.fbMenuName}</option>
还有一次是通过遍历列表。 取而代之的是填充下拉列表中的所有值,并将所需的值设置为选定的值。 只需编写以下简单条件即可。
<select class="form-control" name="menu" id="menu">
<c:forEach var="menu" items="${menu}">
<option value="${menu.fbMenuId}">${menu.fbMenuName}
<c:if test="${menu.fbMenuId == order.fbMenuId}">
selected
</c:if>
</option>
</c:forEach>
</select>
<select class="form-control" name="menu" id="menu">
<c:forEach var="menu" items="${menu}">
<c:choose>
<c:when test="${menu.fbMenuId == order.fbMenuId}">
<option value="${order.fbMenuId}" selected>${order.fbMenuName}</option>
</c:when>
<c:otherwise>
<option value="${menu.fbMenuId}">${menu.fbMenuName} </option>
</c:otherwise>
</c:choose>
</c:forEach>
</select>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.