Behoud van checkbox staten op dezelfde pagina met zoekresultaten

stemmen
1

Ik ben met behulp van Django, en hebben een statische webpagina met een GET vorm, en ongeveer 30 vakjes. De gebruiker selecteert verschillende vakken en klikt op te zoeken, en een resultaat uit een database wordt geretourneerd naar dezelfde pagina in een tabel. Echter, alle selectievakjes gewist, omdat HTML staatloos is.

Wat is de eenvoudigste oplossing voor het 'onthouden' de toestand van de vakjes? Ik heb gekeken door middel van Django docs, maar de voorbeelden gewoon gebruik maken van een variabele en een IF voor een enkele vorm van tekst. Zeker NIET, ik heb om te controleren of elke checkbox ligt in het querydict? Ook werd mijn vorm op maat gemaakt, in plaats van Django vormen.

Uiteindelijk was ik van plan om JSON te gebruiken voor de pagina en alleen de tabel bij te werken, en dat zou dit probleem op te lossen, maar ik ben niet zeker of het nog veel meer, zoals back-knop zou introduceren niet voor eerdere zoekopdrachten.

De vraag is gesteld op 07/07/2009 om 18:02
bron van user
In andere talen...                            


4 antwoorden

stemmen
0

Er zijn manieren om de back-knop probleem op te lossen (hash-tags en wat al niet toegevoegd aan een URL). Echter, de manier waarop ik altijd dit hebben bereikt is door middel van alleen dat. In wezen, zou ik het vink passeren als een array in POST en dan, als je naar ze te maken, gewoon een lus die alle dozen die u nodig heeft te maken en controleren aan de hand POST om te zien of het is niet gecontroleerd of niet. Anders dan dat, ik weet het niet.

antwoordde op 07/07/2009 om 18:06
bron van user

stemmen
0

Met behulp van GET? Goed. Toegang tot de selectievakjes op dezelfde manier toegang tekstveld data.

request.GET [ 'yourfield']

Gebruik afdruk staments om de beschikbare informatie krijgen inspecteren.

afdrukken request.GET [ 'yourfield']

antwoordde op 07/07/2009 om 18:10
bron van user

stemmen
2

"Wat is de eenvoudigste oplossing voor het 'onthouden' de toestand van de vakjes?"

Web transacties zijn staatloos.

Er zijn verschillende gemeenschappelijke manieren om de staat te implementeren.

  1. Sessions. Als de gebruiker is ingelogd, ze hebben een sessie. Store spul in hun sessie. De vorm ze post gaat in de sessie. Dit kan vervolgens worden opgehaald met het oog op een nieuwe vorm terug om ze te posten.

  2. Cookies. Sessions gebruik van cookies. U kunt cookies handmatig gebruiken. Je hebt twee keuzes.

    • Zet de vorm checkbox informatie in de cookie. Stuur het naar beneden met het antwoord. Controleer of de cookie in elke aanvraag, zodat je weet wat je moet het formulier zaad met.

    • Zet een sessie sleutel in het cookie. Dit is wat Django voor je doet. Doe dit niet zelf uit te voeren.

  3. Query strings in de URL. Je hebt dezelfde twee keuzes als met cookies. Ofwel maken de instellingen een grote oude base64 touw of slagen voor een ID dat staat in voor de sessie.

antwoordde op 07/07/2009 om 18:11
bron van user

stemmen
0

Als je met behulp van een formulier object, dan kun je net voorbij de constructeur het verzoek en worden gedaan met het. Als je het handmatig doet, dan moet je een aantal finangling met de sessie te doen.

antwoordde op 09/07/2009 om 07:43
bron van user

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