You are not logged in.

  • Login

1

Sunday, March 2nd 2008, 12:41am

Status eines Checkboxes in Session speichern.

Hallo,

wie kann man den Status eines Checkboxes in Session Scope speichern und dann in den weitern Seiten aufrufen?
Ich meine, ob ein Checkbox vorher gecheckt war oder nicht.

Vielen Dank und Gruß
Friday

2

Sunday, March 2nd 2008, 7:56am

Edit:
Ups, ich dachte ich hätte gelesen, dass du Struts verwendest. Das hast du aber garnicht gesagt.

Antwort für Struts-User:

Quoted

Grundsätzlich ist es erst einmal schöner, wenn man so wenig wie möglich an die Session speichert.
Wenn du es dennoch machen möchtest, würde ich in der zugehörigen Action-Klasse den Request nach dem Parameter der Checkbox-Property fragen. Dann hast du schon einmal den Checkbox-Wert.
(Vorsicht, wenn die Checkbox NICHT aktiviert ist, wird NICHTS bzw. null unter dem Parameter gespeichert. Möchtest du, dass immer etwas für den Checkbox-Parameter übergeben wird, so solltest du ein <html:hidden ... />mit der selben Property wie die Checkbox im Formular eintragen. Wenn die Checkbox nicht angeklickt ist, wird nun der Value des Hidden-Fields übertragen.)
Nachdem du den Wert hast, kannst du ihn ebenfalls in der Action als Attribut an die Session hängen. Die Session bekommst du ebenfalls vom Request.
Das Prinzip (Session vom Request, Hidden-Field, etc.) sollte aber generell gültig sein.
Ansonsten benötige ich mehr Informationen, was du für Techniken verwendest.

This post has been edited 2 times, last edit by "Hafner" (Mar 2nd 2008, 8:37am)


3

Sunday, March 2nd 2008, 10:18am

Status eines Checkboxes in Session speichern.

Danke schon Mal für die Antwort...

Quoted

Ansonsten benötige ich mehr Informationen, was du für Techniken verwendest.
Ich verwende die Tag-Lib pg:pager für paging mit der Datenbank.
ich zeige pro Liste 5 Datensätze, wo es am Ende einen Checkbox, den der User anklicken kann, gibt.

Das Ganze funkt. bis auf dass ich den Status der angeklickten Checkboxes (Und einige Hidden Felder, wo ich Informationen speichere)
verliere, wenn der User die nächsten 5 Datensätze aufruft und auch wenn er die vorher von ihm aufgerufene Seite/5Datensätze
erneut aufruft.

Deswegen, die Idee diese Informationen in der sessionScope zu speichern...etweder direkt mit JSP oder auch
mit c:set (Core TagLib)

Ich versuche das Problem seit gestern zu lösen aber leider ohne Erfolg.

Vielen Dank und Gruß
Friday

4

Sunday, March 2nd 2008, 10:45am

Kann es sein, dass du die Navigation zwischen den verschiedenen Seiten als Links umgesetzt hast, während die Checkbox natürlich in Form eines Formulars abgeschickt wird. Dann ist es logisch, dass die Informationen verloren gehen, da bei einem Link ja das Formular nicht abgeschickt wird.

Entweder du verwendes JavaScript (funktioniert dann aber auch nicht ohne JavaScript) beim onClick des Links und sendest das Formular somit ab, (brauchst natürlich ein Hidden-Field für die Seitennummer oder ähnliches, welches du per JavaScript setzt) oder du integrierst die Navigation zwischen den Seiten (z.B. als Submit-Button) in das Formular. Bei der 2. Lösung musst du natürlich die verschiedenen Submit-Buttons mittels ihres name-Attributes unterscheiden.

5

Sunday, March 2nd 2008, 11:15am

Quoted

Kann es sein, dass du die Navigation zwischen den verschiedenen Seiten als Links umgesetzt hast, während die Checkbox natürlich in Form eines Formulars abgeschickt wird.
Genau das tue ich ;-) die Links zwischen den verschiedenen Seiten sind nicht als Submit Button gecodet. der Submit Button gibt es aber auch, aber es kann
sein, dass der user den Submit Button klickt erst, wenn er mehrere Produkte durch die Checkboxes ausgewählt hat.

Hierbei ein wichtiger Teil des Codes:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<pg:pager id="p" items="${query3.rows[0].value}" url="" maxPageItems="4" maxIndexPages="10" export="number,offset" scope="request">
	<pg:param name="parameterX" value="${param.parameterX}" />
	<pg:param name="parameterY" value="${param.parameterY}" />
	<pg:param name="parameterZ" value="${param.parameterZ}" />
	
	<pg:item>
	......
	......
	......
	</pg:item>
	
	<pg:index>
		<pg:first><a href='${pageUrl}'>[Erste]</a></pg:first> 
		<pg:prev><a href='${pageUrl}'>[Vorherige]</a></pg:prev> 
		<pg:pages><a href='${pageNumber}'></a></pg:pages> 
		<pg:pages><a href='${pageUrl}'><c:out value="${pageNumber}"/></a></pg:pages> 
		<pg:next><a href='${pageUrl}' id='pagingHyperLink'>[N&auml;chste (<c:out value="${pageNumber}"/>)]</a></pg:next> 
		<pg:last><a href='${pageUrl}' id='pagingHyperLink'>[Letzte]</a></pg:last> 
	</pg:index> 
</pg:pager>


Quoted

beim onClick des Links und sendest das Formular somit ab, (brauchst natürlich ein Hidden-Field für die Seitennummer oder ähnliches, welches du per JavaScript setzt)
Das ist ne gute Idee, aber es fehlt mir so spontan nicht ein, wie soll eine Seitennummer dann aussehen ;-(
wenn ich den, durch die pg:index, pg:next etc..., generierten Link mir anschaue, dann sieht er so aus:
wo könnte dann die Variable für die Seitennummer sein und was meinst du dann damit? ist das die Offset Variable?

Source code

1
http://localhost:8080/project/index.jsp?Kategorie=&preisKategorie=30000-200000&uemail=sdsds%40asasasa.dw&privacy=1&p.offset=4


Die zweite Lösung ist auch ne gute Idee...muss ich aber noch probieren.

Danke und Gruß
Friday

6

Sunday, March 2nd 2008, 11:26am

Also das mit der Seitennummer war nur so eine Ansatzidee. Deswegen hab ich ja auch "oder ähnliches" hinzugefügt. Mit preview und next kannst du das natürlich auch machen. Da weißt du selbst am Besten wie du das anpacken musst. :-) Ich wollte dir nur zwei Ansätze aufzeigen.

Similar threads

Social bookmarks