Avatar billede mik28 Seniormester
29. november 2004 - 02:20 Der er 11 kommentarer og
1 løsning

at sætte en sessionvariable

Hej Eksperter,

Jeg sidder med en side hvor jeg skal sende en variable til en anden side når der bliver trykket på en knap. Jeg har lavet det således ind til videre.

onclick="location.href='./produkt.jsp?produkt=<%= rs.getString("id") %>'"

Jeg tænkte imidlertid om man ikke kunne sætte variablen som en session variable. Jeg tænkte mig noget i den her retning.

session.setAttribute("id", <%= rs.getString("id") %>);

Hvordan får jeg den sat ved en onclick?
Avatar billede mik28 Seniormester
29. november 2004 - 02:25 #1
Det må være noget i den her stil

onclick="location.href='./produkt.jsp';session.setAttribute(\"id\", <%= rs.getString(\"id\") %>"
Avatar billede arne_v Ekspert
29. november 2004 - 07:21 #2
session er noget som opbevares på serveren of associeres med requests fra
browseren via enten cookies eller URL rewriting.

onclick udføres client side.

Så det er et problem !

Du bliver nødt til at lade on click lave en GET eller POST og gemme i
session server side.
Avatar billede mik28 Seniormester
29. november 2004 - 10:41 #3
okay det vil altså sige at jeg ikke med en onclick kan sætte en sessionvariable. Jeg er helt med på at sessionvariablen er serverside. Det jeg gerne vil opnå er at variablen ikke kommer op og stå i adresselinien
Avatar billede mik28 Seniormester
29. november 2004 - 10:43 #4
Som jeg ser det er det også smart med sessionvariable, så jeg ikke behøver sende variable med som allerede er sat
Avatar billede arne_v Ekspert
29. november 2004 - 10:53 #5
Hvis du vil gemme noget i session skal du ind over serveren. Normalt
enten et A HREF link eller en FORM submit.

Sessionen er en kontekst som deles mellem forskellige requests for samme
bruger - vel at mærke en kontekst som brugeren ikke selv har direkte adgang til.
Avatar billede mik28 Seniormester
29. november 2004 - 11:01 #6
Jeg kan altså ikke gøre således

<input type="button" style="width:350px;text-align:left;" class="button" name="<%= rs.getString("gruppenavn") %>" value="<%= rs.getString("gruppenavn") %>" onmouseover="this.className = 'buttonHover';" onmouseout="this.className = 'button';" onclick="location.href='./produkt.jsp';<% session.setAttribute("id", rs.getString("id")); %>"></input>
Avatar billede arne_v Ekspert
29. november 2004 - 11:11 #7
Det kan du godt men session.setAttribute udføres på serveren *inden*
siden vises for brugeren og brugeren klikker.

Og jeg tvivler meget på at det er det som du vil.
Avatar billede mik28 Seniormester
29. november 2004 - 11:13 #8
okay det kan jeg også konstatere, og du har helt ret i at det ikke er det jeg vil :-)
Avatar billede mik28 Seniormester
29. november 2004 - 11:29 #9
Jeg kan gøre således, men det ville være fedt at lave det som en post, men hvordan :-)

onclick="location.href='./produkt.jsp?produkt=<%= rs.getString("id") %>'"
Avatar billede miknil Nybegynder
29. november 2004 - 15:39 #10
Du kan kombinere en form med noget javascript

<form action="./product.jsp" method="POST" id="idForm" name="idForm">
<input type="hidden" name="id" value"<%=rs.getString("id")%>">
</form>
....

onclick="document.idForm.submit();"

eller tilsvarende, jeg har ikke testet ovenstående så der er muligvis fejl i.
Avatar billede miknil Nybegynder
29. november 2004 - 15:41 #11
Dit id hedder produkt ser jeg nu, så
  <input type="hidden" name="id" value"<%=rs.getString("id")%>">
skal være
  <input type="hidden" name="produkt" value"<%=rs.getString("id")%>">
Avatar billede mik28 Seniormester
30. december 2004 - 08:54 #12
Jeg rydder lige lidt op :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester