Status eines Checkboxes in Session speichern.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

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

    Antwort für Struts-User:
    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.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Hafner ()

  • Status eines Checkboxes in Session speichern.

    Danke schon Mal für die Antwort...
    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
  • 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.
  • 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:

    Quellcode

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


    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?

    Quellcode

    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