<b>Det här har jag i varukorgen:</b>
<%
v = ShoppingCart.getShoppingCart();
for (int i=0;i < v.size();i++) {
p = (Product) v.elementAt(i);
%>
<select name="Cart" size=1>
<option><%=p.getText() %>
</select>
<a target="mainframe" href="radera_vara.jsp?id=<%= i %>">Ta bort</a>
<% } %>
Hur skriver jag ovanstående så att innehållet hamnar i samma box varje gång man klickar på köp
just nu så skapas en ny box varje gång man klickar på köp
<b>Det här har jag i varukorgen:</b>
<select name="Cart">
<%
v = ShoppingCart.getShoppingCart();
for (int i=0;i < v.size();i++) {
p = (Product) v.elementAt(i);
%>
<option><%=p.getText() %></option>
<% } %>
</select>
<b>Det här har jag i varukorgen:</b>
<%
v = ShoppingCart.getShoppingCart();
%>
<select name="Cart" size=1>
<%
for (int i=0;i < v.size();i++)
{
p = (Product) v.elementAt(i);
%>
<option><%=p.getText() %>
<%
}
%>
</select>
<a target="mainframe" href="radera_vara.jsp?id=<%= i %>">Ta bort</a>
En annan sak, titta lite närmare på List och Map collection klasserna, de är de nya klasserna som har ersatt vector i Java 1.4. Men som du märker så fungerar Vector fortfarande :)
Vill du ha med en knapp för att ta bort en vara kan du göra så här:
<b>Det här har jag i varukorgen:</b>
<select name="Cart">
<%
v = ShoppingCart.getShoppingCart();
for (int i=0;i < v.size();i++) {
p = (Product) v.elementAt(i);
%>
<option name="<%=i%>"><%=p.getText() %></option>
<% } %>
</select>
<a href="#" onclick="location.href='radera_vara.jsp?id=' + document.Cart.options[document.Cart.selectedIndex].value;">Ta bort vara</a>
Vill du ha med en knapp för att ta bort en vara kan du göra så här:
<b>Det här har jag i varukorgen:</b>
<select name="Cart">
<%
v = ShoppingCart.getShoppingCart();
for (int i=0;i < v.size();i++) {
p = (Product) v.elementAt(i);
%>
<option name="<%=i%>"><%=p.getText() %></option>
<% } %>
</select>
<a href="#" onclick="location.href='radera_vara.jsp?id=' + document.Cart.options[document.Cart.selectedIndex].value;">Ta bort vara</a>
Inget raderas från boxen? Hur ser filen 'radera_vara.jsp' ut då? Får du något felmeddelande?
radera vara.jsp
<%
int id = Integer.parseInt(request.getParameter("id"));
Vector v = ShoppingCart.getShoppingCart();
Product p = new Product();
p = (Product) v.elementAt(id);
v.removeElementAt(id);
%>
Nu har jag
<form name="Cart" action="radera_vara.jsp?id=<%=i%>">
<b>Det här har jag i varukorgen:</b>
<select name="Cart">
<%
v = ShoppingCart.getShoppingCart();
for (int i=0;i < v.size();i++)
{ p = (Product) v.elementAt(i);
%>
<option name="<%=i%>">
<%=p.getText() %>
</option>
<% } %>
</select>
<input type="submit" value="Ta bort vara">
</form>
och får
C:\Program\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\web\org\apache\jsp\index_jsp.java:253: cannot resolve symbol
symbol : variable i
location: class org.apache.jsp.index_jsp
out.print(i);
^
1 error
Du kan inte göra så, eftersom att variabeln 'i' inte är deklarerad innan du gör din for-sats. Gör som jag visade, så bör det gå bättre.
<%
v = ShoppingCart.getShoppingCart();
for (int i=0;i < v.size();i++)
{ p = (Product) v.elementAt(i);
%>
<b>Det här har jag i varukorgen:</b>
<form name="Cart" action="radera_vara.jsp?id=<%=i%>">
<select name="Cart">