2017-02-21 7 views
1

Я создаю небольшой проект корзины покупок, где получаю список продуктов в связанном списке из сервлета. Теперь я печатаю значения связанного списка в таблице с возможностью для пользователей выбирать нужные им количества. Который когда-либо количество выбрано должен перейти к следующей странице в качестве атрибутаКак динамически изменять имя HTML-ввода

Вот несколько вопросов, я столкнулся:

1: Поскольку список имеет более чем 1 элементы, каждый элемент в списке должен иметь ввод поле. Как мне динамически изменить имя ввода для количества , которое я позже могу использовать в качестве атрибута.

2: Доступное количество единиц может варьироваться в зависимости от производителя продукта, например , чтобы установить максимальное значение количества в доступный запас.

3: Если мне удастся получить значения, как установить все атрибуты. Является ли он в цикле for или вне цикла for?

Вот код ссылки. Picture of what the page looks like

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
<%-- <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %> --%> 
<%@page import="shoppingcart.model.items.*,java.util.*" %> 

<%List<ItemDetailsPojo> listp = (List<ItemDetailsPojo>) session.getAttribute("ItemsData"); 

    %> 
    <%-- <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> --%> 
    <Center> 
     <h3 style="color: blue">Welcome To the World of Shopping</h3> 
    </Center> 
    <div align='right'>Logged in as:</div> 

<div align="center"> 
     <table border="10" cellpadding="5"> 
      <caption> 
       <h2>List of Items</h2> 
      </caption> 
      <tr> 
       <th>ItemId</th> 
       <th>Name</th> 
       <th>Category</th> 
       <th>Price</th> 
       <th>Available</th> 
       <th>Quantity</th> 
      </tr> 
      <%for(int i=0;i<listp.size();i++){%> 
       <tr> 
        <td><%out.println(listp.get(i).getItemId());%></td> 
        <td><%out.println(listp.get(i).getItemName());%></td> 
        <td><%out.println(listp.get(i).getCategory());%></td> 
        <td><%out.println(listp.get(i).getPrice());%></td> 
        <td><%out.println(listp.get(i).getQuantity());%></td> 
        <% int number = listp.get(i).getQuantity(); %> 
        <td><input type="number" name="should dynamically change according to the size of the list" min="0" max="should change according the the quantity available"></td> 
       </tr> 
      <%} %> 
     </table> 

    </div> 

</body> 
</html> 

ответ

1

Попробуйте это:

<td><input type="number" name="quantity<%=i%>" min="0" max="<%=listp.get(i).getQuantity()%>"></td> 

и вам необходимо установить все атрибуты вне цикла.

+0

Работал как шарм, спасибо – Compiling

0

Редактировать код, как этот

<%List<ItemDetailsPojo> listp = (List<ItemDetailsPojo>) session.getAttribute("ItemsData"); 

      %> 
      <%-- <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> --%> 
      <Center> 
       <h3 style="color: blue">Welcome To the World of Shopping</h3> 
      </Center> 
      <div align='right'>Logged in as:</div> 

     <div align="center"> 
       <table border="10" cellpadding="5"> 
        <caption> 
         <h2>List of Items</h2> 
        </caption> 
        <tr> 
         <th>ItemId</th> 
         <th>Name</th> 
         <th>Category</th> 
         <th>Price</th> 
         <th>Available</th> 
         <th>Quantity</th> 
        </tr> 
        <% 
    String name; 
    for(int i=0;i<listp.size();i++){%> 
         <tr> 
          <td><%out.println(listp.get(i).getItemId());%></td> 
          <td><%out.println(listp.get(i).getItemName());%></td> 
          <td><%out.println(listp.get(i).getCategory());%></td> 
          <td><%out.println(listp.get(i).getPrice());%></td> 
          <td><%out.println(listp.get(i).getQuantity());%></td> 
          <% int number = listp.get(i).getQuantity(); 
    name="quantity".concat(listp.get(i).getQuantity()); 
    %> 
          <td><input type="number"name="<%=name%>" min="0" max="should change according the the quantity available"></td> 
         </tr> 
        <%} %> 
       </table> 

      </div> 


    </body> 
    </html>