Păstrarea statelor din casetele de selectare pe aceeași pagină cu rezultatele interogării

voturi
1

Sunt folosind Django, și au o pagină web static cu o formă GET, și aproximativ 30 de casete de selectare. Utilizatorul selectează diverse cutii și dă clic pe căutare, și un rezultat dintr-o bază de date este returnat în aceeași pagină într-un tabel. Cu toate acestea, toate casetele de selectare au fost eliminate, deoarece HTML este apatridă.

Care este cea mai simplă soluție de a „aminti“ starea de casetele? M-am uitat prin django Docs, dar exemplele folosesc doar o variabilă și un FI pentru o singură formă de text. Cu siguranță, am dont trebuie să verifice dacă fiecare casetă este setat în querydict? De asemenea, forma mea a fost personalizat creat, mai degrabă decât folosind forme django.

În cele din urmă, am fost de planificare pentru a utiliza JSON pentru pagina și actualiza numai masa, și care ar rezolva această problemă, dar Im nu sunt sigur dacă ar introduce mult mai multe, de exemplu, din nou buton nu lucrează pentru căutările anterioare.

Întrebat 07/07/2009 la 18:02
sursa de către utilizator
În alte limbi...                            


4 răspunsuri

voturi
0

Există modalități de a remedia problema butonul din spate (etichete hash și fleacuri adăugat la o adresă URL). Cu toate acestea, modul în care am realizat întotdeauna acest lucru este prin doar asta. În esență, aș trece casetele de selectare ca o matrice în POST și apoi, când te duci pentru a le face, trebuie doar să facă o buclă care va face toate casetele de care aveți nevoie, și verificați împotriva POST pentru a vedea dacă acesta a fost verificat sau nu. În afară de asta, nu știu.

Publicat 07/07/2009 la 18:06
sursa de către utilizator

voturi
0

Utilizarea GET? Bun. Accesați casetele de selectare același mod în care a avea acces la datele textfield.

request.GET [ 'yourfield']

Utilizați staments de imprimare pentru a inspecta informațiile disponibile în GET.

imprima request.GET [ 'yourfield']

Publicat 07/07/2009 la 18:10
sursa de către utilizator

voturi
2

„Care este cea mai simplă soluție de a«aminti»starea de casetele de selectare?“

tranzacțiile Web sunt apatrizi.

Există mai multe modalități comune de implementare a statului.

  1. Sesiuni. În cazul în care utilizatorul este conectat, acestea au o sesiune. A se păstra lucrurile în sesiune lor. Forma ei merge în POST sesiune. Acest lucru poate fi apoi recuperate pentru a posta un nou formular înapoi pentru a le.

  2. Cookie-urile. Sesiunile folosesc cookie-uri. Puteți utiliza manual cookie-uri. Ai două opțiuni aici.

    • Pune informațiile din formular caseta de selectare în cookie. Trimite-l în jos cu răspunsul. Verificați dacă cookie-ul în fiecare cerere, astfel încât să știi ce să însămânțeze formularul cu.

    • Pune-o cheie de sesiune în cookie. Aceasta este ceea ce face Django pentru tine. Nu pune în aplicare acest lucru singur.

  3. șiruri de interogare în adresa URL. Ai aceleași două opțiuni ca și cu cookie-uri. Fie efectuați setările un șir de caractere base64 mari vechi sau să treacă un ID care se află în pentru sesiunea.

Publicat 07/07/2009 la 18:11
sursa de către utilizator

voturi
0

Dacă ați utilizat un obiect Form, atunci ai putea trece doar constructorul cererea și să fie făcut cu ea. Dacă o faci manual, va trebui să facă unele finangling cu sesiunea.

Publicat 09/07/2009 la 07:43
sursa de către utilizator

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