[Answered ]-Preserving checkbox states on same page with query results

2👍

“What’s the simplest solution to ‘remember’ the state of the checkboxes?”

Web transactions are stateless.

There are several common ways to implement state.

  1. Sessions. If your user is logged in, they have a session. Store stuff in their session. The form they POST goes into the session. This can then be retrieved in order to post a new form back to them.

  2. Cookies. Sessions use cookies. You can use cookies manually. You have two choices here.

    • Put the form checkbox information into the cookie. Send it down with the response. Check for the cookie in each request so you know what to seed the form with.

    • Put a session key in the cookie. This is what Django does for you. Don’t implement this yourself.

  3. Query strings in the URL. You have the same two choices as with cookies. Either make the settings a big-old base64 string or pass an ID that stands in for the session.

👤S.Lott

0👍

There are ways to fix the back button issue (hash tags and whatnot appended to an URL). However, the way that I have always accomplished this is through just that. Essentially, I would pass the checkboxes as an array in POST and then, when you go to make them, just make a loop that will make all the boxes you need, and check against POST to see if it’s been checked or not. Other than that, I don’t know.

👤Peter

0👍

Using GET? Good. Access the check boxes the same way you access textfield data.

request.GET[‘yourfield’]

Use print staments to inspect the information available in GET.

print request.GET[‘yourfield’]

0👍

If you were using a Form object, then you could just pass the constructor the request and be done with it. If you’re doing it manually, you’ll have to do some finangling with the session.

Leave a comment