Die Erhaltung Checkbox Staaten auf derselben Seite mit Abfrageergebnissen

stimmen
1

Ich bin mit django, und habe eine statische Webseite mit einer GET-Form, und etwa 30 Kontrollkästchen. Der Benutzer wählt verschiedene Boxen, und klickt auf Suche, und ein Ergebnis aus einer Datenbank auf die gleiche Seite in einer Tabelle zurückgegeben. Allerdings sind alle Kontrollkästchen wurden gelöscht, da HTML staatenlos ist.

Was ist die einfachste Lösung zu ‚erinnern‘ den Zustand der Kontrollkästchen? Ich habe durch django docs gesucht, aber die Beispiele verwenden nur eine Variable und eine IF für eine einzelne Textform. Sicher, ich habe prüfen nicht, ob jede Checkbox in der QueryDict gesetzt? Außerdem wurde meine Form benutzerdefinierte erstellt, anstatt django Formen verwenden.

Schließlich war ich die Planung JSON für die Seite zu verwenden und nur die Tabelle aktualisieren, und das würde dieses Problem lösen, aber ich bin nicht sicher, ob es viel mehr, zB Zurück-Taste nicht für vorherige Suchen arbeiten würde einzuführen.

Veröffentlicht am 07/07/2009 um 18:02
quelle vom benutzer
In anderen Sprachen...                            


4 antworten

stimmen
0

Es gibt Möglichkeiten, die Zurück-Taste Ausgabe (Hash-Tags und so weiter an eine URL angehängt) zu beheben. Doch die Art und Weise, die ich dies immer erreicht habe, ist durch nur das. Im Wesentlichen würde ich die Kontrollkästchen als Array in POST übergeben und dann, wenn man sie gehen lassen zu, nur eine Schleife, die alle Boxen müssen Sie machen, und überprüfen gegen POST zu sehen, ob es oder nicht geprüft worden ist. Other than that, weiß ich nicht.

Beantwortet am 07/07/2009 um 18:06
quelle vom benutzer

stimmen
0

Mit GET? Gut. Greifen Sie auf die Kontrollkästchen auf die gleiche Weise Textfeld Daten zugreifen.

request.GET [ 'yourfield']

Verwenden Sie den Druck staments die Informationen in GET zu inspizieren.

drucken request.GET [ 'yourfield']

Beantwortet am 07/07/2009 um 18:10
quelle vom benutzer

stimmen
2

„Was ist die einfachste Lösung zu‚erinnern‘sich der Zustand der Kontrollkästchen?“

Web-Transaktionen sind staatenlos.

Es gibt verschiedene Möglichkeiten, um Zustand zu implementieren.

  1. Sessions. Wenn Ihr Benutzer angemeldet ist, haben sie eine Sitzung. Shop Sachen in ihrer Sitzung. Die Form sie Post geht in die Sitzung. Dies kann dann in Reihenfolge abgerufen werden, um eine neue Form zurück, um sich zu veröffentlichen.

  2. Kekse. Sessions verwenden Cookies. Sie können Cookies manuell verwenden. Sie haben zwei Möglichkeiten hier.

    • Legen Sie das Formular Kontrollkästchen Informationen in die Cookie. Senden Sie es mit der Antwort nach unten. Überprüfen Sie, ob das Cookie in jeder Anforderung, so dass Sie wissen, was die Form Saatgut mit.

    • Setzen Sie einen Sitzungsschlüssel in dem Cookie. Dies ist, was Django für Sie tut. Implementiere nicht diese selbst.

  3. Query-Strings in der URL. Sie haben die gleichen zwei Möglichkeiten, wie mit Cookies. Entweder nehmen Sie die Einstellungen einen großen alten base64 String oder eine ID übergeben, die für die Sitzung steht.

Beantwortet am 07/07/2009 um 18:11
quelle vom benutzer

stimmen
0

Wenn Sie ein Formular-Objekt verwendet haben, dann könnten Sie einfach den Konstruktor die Anforderung übergeben und mit ihm getan werden. Wenn Sie es manuell tun, werden Sie einige finangling mit der Sitzung zu tun haben.

Beantwortet am 09/07/2009 um 07:43
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more