将数据库中的值添加到下拉列表中

时间:2014-12-13 14:51:41

标签: html forms netbeans web-applications

怎么办? 我这样做但是我坚持到了开头。 我知道我必须这样做。

  <strong>Select a product :</strong>
                <select name="stock_name">
           <c:forEach var="row" items="${Stocks.rowsByIndex}">
            <c:forEach var="column" items="${row}">
                <option value="<c:out value="${column}"/>"><c:out value="${column}"/></option>
            </c:forEach>
        </c:forEach>
                </select>

然后如果我喜欢这样我内心没什么。这是放在.html中。我知道我必须把

<sql:query var="stocks" dataSource="healthds">
              SELECT stockid FROM Stocks
            </sql:query>`

我应该把查询放在哪里?在一个jsp ??以及如何连接它们?我真的不能得到它。 这是完整的表格

 <form method="post" action="PurchaseCreate">

        <p>Please enter the fields below to make your purchase</p>
        <sql:query var="stocks" dataSource="healthds">
          SELECT stockid FROM Stocks
        </sql:query>
        <strong>Select a product :</strong>
            <select name="stock_name">
       <c:forEach var="row" items="${Stocks.rowsByIndex}">
        <c:forEach var="column" items="${row}">
            <option value="<c:out value="${column}"/>"><c:out value="${column}"/></option>
        </c:forEach>
    </c:forEach>
            </select>
        </p>
        <p>Quantity :
            <input type="text" name="quantity">&nbsp;
        </p>
            <input type="submit" name="create" class ="button" value="Add into cart">

    </form> 

编辑: main.jsp中

<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>

<html>
<head>
<title>Test Tags</title>
</head>
<body>
<h1>Reading Data</h1>

  <sql:query var="stocks" dataSource="healthds">
       SELECT stockid FROM Stocks
  </sql:query>

<form method="post" action="Main.jsp">
    <p>Please enter the fields below to make your purchase</p>
    <strong>Select a product :</strong>
    <select name="stock_name">
     <c:forEach var="i" begin="1" end="5">
       <option>Item <c:out value="${i}"/></option>
     </c:forEach>
     <c:forEach var="row" items="${stocks.rowsByIndex}">
      <option><c:out value="${row[0]}"/></option>
     </c:forEach>
    </select>
    </p>
    <p>Quantity :
        <input type="text" name="quantity">&nbsp;
    </p>
        <input type="submit" name="create" class ="button" value="Add into cart">
</form> 
</body>
</html>

1 个答案:

答案 0 :(得分:1)

如果您有stocks这样的数据集,请使用stocks NOT Stocks

<sql:query var="stocks" dataSource="healthds">
    SELECT stockid FROM Stocks
</sql:query>`

错误

<c:forEach var="row" items="${Stocks.rowsByIndex}">

确定

<c:forEach var="row" items="${stocks.rowsByIndex}">
                              |     |_______________ if you want it '.rowsByIndex' then 'use it' !
                              |_____________________ `s` NOT `S`

没有嵌套<c:forEach

的示例

<强> .rowsByIndex

您只有一个数据字段:SELECT stockid FROM Stocks
通过${row[0]}

获取
 <select name="stock_name">
  <c:forEach var="row" items="${stocks.rowsByIndex}">
        <option><c:out value="${row[0]}"/></option>
  </c:forEach>                      |_________________that's rowsByIndex
 </select>

没有 .rowsByIndex

 <select name="stock_name">
  <c:forEach var="row" items="${stocks.rows}">
        <option><c:out value="${row.stockid}"/></option>
  </c:forEach>
 </select>

有效选择

 <option value="P101">Pizza Napoli</option>

您的选择选项,例如

 <option value="astockID1">astockID1</option>

如果选择visible valueassigned value相同,请value=远离

 <option>astockID1</option>

代码更短,更易读。

 <option><c:out value="${column}"/></option>

使用 Derby sample database表格测试的工作示例刚创建FRIENDS

enter image description here

的index.jsp

<%-- Document   : index  Created on : 13.Dez.2014, 20:34:34 --%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>

<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   <title>JSP Page</title>
</head>
<body>
  <h1>Hello World!</h1>
  <sql:setDataSource 
      url="jdbc:derby://localhost:1527/sample;user=app;password=app" 
      driver="org.apache.derby.jdbc.ClientDriver"  
      var="Derbydata"/>  
  <sql:query sql="SELECT * FROM APP.FRIENDS" 
      dataSource="${Derbydata}" 
      var="Friends"/>  

  <select name="friends_id_name">
      <c:forEach var="row" items="${Friends.rowsByIndex}">
       <option><c:out value="${row[0]}"/> <c:out value="${row[1]}"/></option>
      </c:forEach>
  </select>  
</body>
</html>

输出

enter image description here