Préserver les états de cases à cocher sur une même page avec les résultats de la requête

voix
1

J'utilise django, et une page Web statique avec un formulaire GET, et environ 30 cases. L'utilisateur sélectionne différentes boîtes, et clique sur la recherche, et un résultat à partir d'une base de données est retourné à la même page dans un tableau. Cependant, toutes les cases ont été effacées, car HTML est apatride.

Quelle est la solution la plus simple pour se « souvenir » de l'état des cases à cocher? Je l'ai regardé à travers django documents, mais les exemples qui viennent d'utiliser une variable et un IF pour une forme de texte. Certes, je ne dois vérifier si chaque case à cocher est définie dans le QueryDict? En outre, ma forme a été créée sur mesure, plutôt que d'utiliser les formes django.

Finalement, je comptais utiliser JSON pour la page et mettre à jour seule la table, et qui résoudrait ce problème, mais je ne suis pas sûr si elle introduirait bien d'autres, par exemple retour bouton ne fonctionne pas pour les recherches précédentes.

Créé 07/07/2009 à 18:02
source utilisateur
Dans d'autres langues...                            


4 réponses

voix
0

Il existe des moyens de résoudre le problème de bouton de retour (balises de hachage et ainsi de suite ajouté à une URL). Cependant, la façon dont je l'ai toujours accompli cela est par cela. Essentiellement, je passerais les cases à cocher comme un tableau en POST puis, quand vous allez à les faire, juste faire une boucle qui fera toutes les cases dont vous avez besoin, et vérifiez contre POST pour voir si elle a été cochée ou non. A part cela, je ne sais pas.

Créé 07/07/2009 à 18:06
source utilisateur

voix
0

En utilisant GET? Bien. Accédez aux cases à cocher de la même façon que vous accédez à des données de textfield.

request.GET [ 'yourfield']

Utilisez staments d'impression pour inspecter les informations disponibles GET.

imprimer request.GET [ 'yourfield']

Créé 07/07/2009 à 18:10
source utilisateur

voix
2

« Quelle est la solution la plus simple pour se « souvenir » de l'état des cases à cocher? »

les transactions Web sont apatrides.

Il existe plusieurs façons communes pour mettre en œuvre l'État.

  1. Sessions. Si est connecté à votre utilisateur, ils ont une session. Des vêtements de magasin dans leur session. La forme qu'ils se POST dans la session. Cela peut ensuite être récupéré pour poster un nouveau formulaire à eux.

  2. Biscuits. Sessions utilisent les cookies. Vous pouvez utiliser des cookies manuellement. Vous avez deux choix ici.

    • Mettez les informations de case de formulaire dans le cookie. Envoyez-le vers le bas avec la réponse. Vérifiez que le cookie dans chaque demande si vous savez quoi semer le formulaire.

    • Mettez une clé de session dans le cookie. C'est ce que Django fait pour vous. Ne pas mettre en œuvre vous-même.

  3. Les chaînes de requête dans l'URL. Vous avez les mêmes deux choix comme avec les cookies. Vous pouvez soit effectuer les réglages d'une grande chaîne de vieux base64 ou passer une carte d'identité qui se tient pour la session.

Créé 07/07/2009 à 18:11
source utilisateur

voix
0

Si vous utilisez un objet formulaire, alors vous pouvez passer le constructeur de la demande et faire avec elle. Si vous faites manuellement, vous devrez faire quelques finangling à la session.

Créé 09/07/2009 à 07:43
source utilisateur

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