【问题标题】:Add value from database to a dropdownlist将数据库中的值添加到下拉列表
【发布时间】:2015-02-12 03:14:06
【问题描述】:

怎么办? 我正在这样做,但我被困在了开始。 我知道我必须这样做。

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

编辑: 主.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>

【问题讨论】:

  • @moskito-x 好的。我在那里写了名字。
  • @moskito-x 我可以在下拉列表中看到 Item 以及一个空格。查询仍然存在。
  • 在浏览器中显示您调用测试的确切网址。
  • @moskito-x http://localhost:8080/AssignmentNew/MemberAccess/Main.jsp
  • @moskito-x 我已经编辑了我的帖子。查找更新后的错误。

标签: html forms netbeans web-applications


【解决方案1】:

如果您有像 stocks 这样的数据集,请使用 stocks 而不是 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`

没有嵌套&lt;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 databaseFRIENDS 测试的工作示例

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>

输出

【讨论】:

  • 所以我的代码位置正确吗?我的意思是 sql 应该放在那里?
  • 我在网上找到了它,在 netbean 的某个地方。我不明白这就是为什么。
  • 你的意思是form method = "post " action = "main.jsp" ?从哪里发布?
  • 将所有代码放在一个 .jsp 文件中。您有一个
    action = "main.jsp" 替换action="PurchaseCreate" 用我的替换你的
  • PurchaseM.jsp,我只是将操作更改为action=PurchaseM.jsp,当然将选择移动到purchaseM.jsp
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-29
  • 2021-12-31
  • 1970-01-01
  • 1970-01-01
  • 2018-08-06
  • 2015-08-15
  • 1970-01-01
相关资源
最近更新 更多