Indkøbskurv. How?

Tags:    programmering

Hej allesammen.
Er blevet anbefalet dette forum, håber der er nogen som kan hjælpe mig. :)

Min studiegruppe er ved at støbe en hjemmeside sammen til en eksamensopgave, og der skal bl.a. være en indkøbskurv. Den skal bare fungere som enhver anden indkøbskurv man ser rundt omkring på nettet. Idet du klikker "køb", hopper der 1 stk af varen op i indkøbskurven, etc...

Vi koder i .jsp

Jeg havde forestillet mig noget med at når man trykkede "køb", smed den værdierne ind i en ArrayList, som man derefter refererede til i indskøbsvognen. Har dog også overvejet bare at gemme værdierne inde i hver enkelte kundes session.

Datalogi er desværre ikke min stærke side på studiet, tvært imod, så håber der sidder nogle kloge hoveder derude :)



Hmmm... Jeg kender desværre ikke noget til .jsp...
Er der en speciel grund til at i koder i jsp? For med PHP ville det være let... :)



Det er desværre et krav i opgavebeskrivelsen at vi skal kode i jsp, fordi vi lige har været igennem et forløb med dette. :(



Okay.
Det vil nok ikke være det smarteste at gemme det i sessions..
Der er ikke nogen form for database?
Nå, men ellers er det da en hel klar mulighed at gamme data i et array..!



Hmmm... Jeg kender desværre ikke noget til .jsp...
Er der en speciel grund til at i koder i jsp? For med PHP ville det være let... :)


Det er det skam også i java.

Okay.
Det vil nok ikke være det smarteste at gemme det i sessions..
Der er ikke nogen form for database?
Nå, men ellers er det da en hel klar mulighed at gamme data i et array..!


Det er da fint nok at gemme det i en session, ellers ville du skulle lave en masse skrivninger til databasen hvergang en bruger tilføjer noget.

For at tilføje noget i til sessionen igennem jsp, skal du bruge session.setAttribute("name",object);

For at hente det ud igen, skal du bruge session.getAttribute("name");



Det har jeg også prøvet. Men jeg kan simpelthen bare ikke få det til at virke.

Her er min forløbige kode i mine to filer:

Products:
Potteplante <form method = "post" action ="cart.jsp">
<input type="submit" name= "potteplante" value="køb"></form>


Cart:
[code]<%@ page language="java" import="java.util.*" %>
<html>
<head><title>Cart</title><head>
<body>

<%
ArrayList oensker = (ArrayList) session.getAttribute ("oensker");

if (oensker == null)
{
oensker = new ArrayList ();
session.setAttribute("oensker", oensker);
}

String name = request.getParameter("potteplante");
if (name != null) {
oensker.add(name);
}

if (oensker.size()>0) {
%>
<p><b>Dine varer:</b></p>
<%

for (int i=0; i<oensker.size(); i++)
{ %>
Vare nr. <%= i+1 %>: <%= oensker.get(i) %><br>
<% }

}

%>

<form action ="#"><input type="submit" value="vis">
<input type ="submit" value="betal">
</form>

</body>
</html>code]


Men lortet virker bare ikke. Den skriver "Dine varer: Køb" ... wtf?

Output kan ses her: http://img183.imageshack.us/img183/2040/hmmmhmmmnm9.jpg



Indlæg senest redigeret d. 26.03.2008 13:21 af Bruger #13506
Verdien af "potteplante" er jo "køb", så det er da logisk nok? Du er nød til at lave et hidden felt med name "potteplante" og value "potteplante, for at det skal fungere ;)



Du mangler lige at sætte din arraylist tilbage i sessionen, når du har fyldt noget i den. I starten laver du new ArrayList() (hvis der ikke findes nogen i sessionen i forvejen), derefter sætter du den i sessionen. Du gemmer den ikke i sessionen igen, efter du har sat data i den, og dette betyder at, den altid vil være tom.



t