Listele de vot folosind PHP

Listele de votare sunt utilizate pe parcursul diferitelor proiecte web. In acest tutorial vom crea un PHP simplu bazat pe lista de vot.

Deoarece pentru funcționarea normală a demo pe care doriți să sprijine serverul SQLite, tutorial foloseste demo-ul din lecția originală. Despre conexiunea SQLLite la server poate fi citit aici.

Pasul 1: Planificarea și crearea unei baze de date

Pentru formarea rezultatelor alegerilor, trebuie să păstrăm următoarele informații:

  • Problema ID
  • ID răspuns
  • Numărul de voturi care a primit o întrebare / răspuns pereche

În această lecție, veți utiliza DOP și SQLite. script PHP utilizat pentru a crea baza de date:

Listele de vot folosind PHP

Acest script simplu creează baza de date SQLite în directorul în care a evoluat. Spre deosebire de MySQL, baza de date este un fișier simplu. SQL CREATE cerere creează un tabel în care se stabilește cheia primară:

Pasul 2: Elaborarea HTML lista de vot de marcare

Înainte de a începe să genereze cod PHP, aveți nevoie pentru a decide cum se va arata ca lista de vot în ceea ce privește aspectul. Vom păstra semantica mai simplu posibil. Lista de vot va fi de două tipuri:

  • Întrebările care așteaptă să se răspundă - un fel de întrebări
  • Rezultatul curent al votului - forma rezultatelor votării

Când scrierea de cod HTML pentru a fi utilizate clase CSS, care vor fi descrise mai târziu în lecție.

un fel de întrebări

Având în vedere că lista de vot este un set de răspunsuri posibile, atunci vom folosi o lista neordonata, care va conține răspunsurile. Pentru foarte întrebarea va fi utilizat tag-ul din titlu.

Foarte simplu, dar nu există elemente de formular. În acest caz, butoanele radio perfecte, așa cum avem nevoie doar de un singur răspuns la contul de voturi. Deci, vom folosi tag-ul etichetă pentru maparea un răspuns la butonul radio dorit. Acum formularul nostru HTML va arata astfel:

Trebuie să adăugați ceva. Vom utiliza eticheta FIELDSET pentru a seta opțiunile de stil, și, desigur, au nevoie de un buton pentru a trimite vocea!

Fiecare răspuns va crea un nou tag-ul li. în care valoarea butonul radio va crește. Această operație se va executa în cele din urmă cod PHP.

Vezi rezultatele de vot

Codul HTML va fi similar cu tipul de întrebări. tag-uri Li nu va conține elementele formularului, și vom adăuga div. care va fi utilizat pentru a afișa procentul de voturi care au primit răspunsul:

Acesta utilizează un șir de caractere de referință stiluri. Aceste stiluri sunt generate la codul nostru PHP în funcție de valoarea curentă a procentului de voturi exprimate pentru fiecare răspuns. Așa cum ar trebui să arate unele tipuri:

Listele de vot folosind PHP

Pasul 3: Forma Stil

Codul HTML care pur si simplu nu arata foarte atractiv. Avem nevoie pentru a face aspectul paginii mai atractiv. Vom folosi biblioteca PIE CSS3 minunat (Progressive Internet Explorer), astfel încât pagina arată la fel în toate browserele.

Stil pentru forma tag-ul

Intenționăm să utilizați formularul tag-ul ca recipient. Acesta va avea un minunat colțuri rotunjite și umbră. Stilul stabilește, de asemenea, lățimea și umplutură.

line-cheie - cel care conține comportamentul atributului. Acesta este ignorat de toate browserele cu excepția IE, și adaugă funcționalitate CSS3 IE6-8.

Listele de vot folosind PHP

Aspectul este încă oarecum stângaci, așa că va continua să lucreze cu stiluri.

răspunsuri dreptunghi

Acum, creați un perfect răspunsuri dreptunghi. Setează culoarea pentru marginea exterioară (FIELDSET) este aceeași ca și pentru fundal, și o listă neordonată va fi utilizat ca o graniță reală. Aici este codul CSS:

Listele de vot folosind PHP

Stil pentru răspunsuri

Acum trebuie să adăugați stiluri CSS la opțiunile noastre arata mai bine.

De ce folosim de poziționare absolută pentru introducerea de intrare și de poziționare a etichetelor plutitoare. Deoarece răspunsul conține mai multe linii. În cazul în care răspunsul este în lista de vot va fi lung, butonul radio ar trebui să apară ca o etichetă într-o listă neordonată - să stea pe partea stângă a textului. Astfel vom evita fluxul de text în cazul în care conține câteva rânduri.

Există, de asemenea, este utilizat un stil special conceput pentru IE (simbolul *), care se bazează pe butoanele în ordinea corectă în IE6-8.

De asemenea, trebuie să setați stilul pentru benzile, afișează rezultatele votării. Introduceți codul:

Există, de asemenea, un atribut specific-fundal -plăcintă cu mere. care în combinație cu biblioteca PIE permite utilizarea unui gradient în fundal în IE.

Intrebare si butonul

Stilul implicit pentru tag-ul nu satisface h4 așteptările noastre, așa că adăugați codul pentru acesta.

De asemenea, în mod implicit, butoanele nu sunt arata foarte elegant, asa ca vom folosi sprite-uri CSS pentru ei.

Listele de vot folosind PHP

retușuri

Pentru a remedia unele ciudatenii IE6, adăugând unele elemente ale caracteristicii de zoom. Proprietatea este ignorată de către toate celelalte browsere.

De asemenea, puteți vedea granița dintre problemele. Aceasta se realizează cu ajutorul unei clase suplimentare pentru tag-ul li. care este atribuit tuturor elementelor din lista din script PHP.

Complet fișier CSS este disponibil în codul sursă.

Pasul 4: Crearea unei clase PHP - alege interfata

Acum este timpul pentru a crea codul PHP pentru a genera lista de vot, procesarea de vot, și de ieșire rezultatele. Vom încerca să salvați script-ul cât mai simplu posibil. Pentru a crea o listă de vot într-un anumit loc pe o pagină, utilizați următorul cod PHP:

Doar treci constructorul o matrice care conține întrebarea urmată de răspunsul. Pentru a ține evidența problemelor în baza de date, vom folosi un hash MD5 al întrebării ca un identificator.

Pasul 5: Selectați proprietățile clasei

Anumite date sunt necesare pentru toată lista de vot. Vom stoca unele dintre datele din proprietățile clasei. Este necesar să se păstreze întrebările și răspunsurile, aspectul de bază HTML-ul, problema de identitate, precum și informații cu privire la modul de a afișa bara de rezultate. Mai jos este codul PHP:

Constantele de inițializare sunt utilizate de către una dintre metodele pentru a facilita determinarea stării procesului de votare.

identificatorul întrebare este utilizat pentru a stoca informații într-o bază de date. Toate valorile din codul HTML cuprins între semne la sută va fi înlocuit.

Pasul 6: Crearea codul HTML pentru lista de vot sau pentru a răspunde

Având în vedere că lista de vot va crea un obiect, vom explica __construct metoda.

În primul rând, vom scoate problema matrice din stivă folosind funcția array_shift. și salvați-l în proprietate. Răspunsurile sunt stocate într-o matrice. De asemenea, putem crea problema de identitate, funcția MD5.

Următoarele trei linii de a efectua valorile de înlocuire în codul HTML. Prima stabilește acțiunea formular pentru pagina care găzduiește lista de vot. A doua linie pune identificatorul întrebării într-un câmp de formular ascuns. Al treilea rând pune întrebarea în codul HTML.

Ultima linie în constructor, vom verifica pentru a vedea dacă pe această listă sau nu utilizatorul a votat. Dacă ar fi votat, rezultatele de vot vor fi afișate, iar dacă nu - atunci lista de vot.

Etapa 7: Generarea unei liste de votare

Ambele procese - generarea listei rezultatelor votării și generarea - sunt operații foarte similare. Pentru a adera la principiul uscat (Nu te repeta) diviza procesul de creare a listei pentru cele trei metode. Metoda de bază - sondaj.

Listele de vot folosind PHP

Asta e ceea ce se întâmplă în această metodă:

Liniile 2 și 3: Buton „Vot“ avem nevoie doar în cazul în care utilizatorul nu a votat. Aici vom determina dacă folosim butonul sau nu. Apoi, inserați-l în codul HTML, înlocuind butonul butonul%% sau codul, sau un șir gol.

Linia 6 - 8: dacă nu prezintă o listă de vot, atunci avem nevoie de rezultate. Aici vom obține datele. De asemenea, vom calcula numărul total de voturi care vor fi folosite mai târziu pentru a determina procente.

Rândurile 11 - 12: GENERAȚIE li tags codul nostru HTML. În funcție de ceea ce deducem (lista de vot sau rezultatele), generează un cod HTML diferit. Procesul este controlat de două funcții:

Linia 15: Un simplu de ieșire de date la pagina.

Etapa 8: pollLine) Metoda (

Aceasta este o metodă foarte simplă, care devine indicele de răspuns curent ca argument.

Se verifică dacă există mai multe răspunsuri după aceasta, și dacă da, setează clasa CSS la frontieră pentru această etichetă li. Ultimul răspuns nu va fi în această clasă, realizându-se astfel efectul vizual dorit.

Etapa 9: voteLine) Metoda (

Această metodă are trei argumente:

  • $ Răspuns. Răspunsul la întrebarea pentru această linie
  • $ Rezultat. Numărul de voturi care au primit acest răspuns
  • $ Voturi. Numărul total de voturi în sondajul

Datele obținute tag-ul este generat pentru a afișa rezultatele li.

Deoarece este posibil ca răspunsul nu va avea voturile în general. Noi verificam rezultatul $ variabila. și dacă nu contează ce este atribuit în mod implicit 0.

Apoi a determinat ce procent de voturi primit un răspuns, și cu ajutorul lățimii Scalarea la scară, în pixeli, pentru rezultatul benzii. Apoi, codul HTML este returnat, care sodderzhit toate informațiile necesare.

Pasul 10: Scrierea metodei getData ()

getData (), metoda este definită ca fiind static. De ce? Dacă vom decide să extindă funcționalitatea sistemului nostru în viitor, cu utilizarea AJAX, va trebui să numim această metodă, fără a crea un obiect. Aici este codul metoda:

Materie ID-ul este trecut la o metodă care returnează o matrice, răspunsurile de identitate și numărul de voturi pe care le are răspunsul.

Etapa 11: Procesarea vocii

Vom adăuga oa doua metodă statică la clasa. Această metodă va procesa vocea primită. numărate de voce în cazul în care utilizatorul nu a votat anterior (determinat prin cookie-uri). Odată ce un utilizator a votat, am stabilit sootvettsvuyuschie cookie-uri.

vot apel Metoda () va fi plasat în partea de sus a paginii noastre PHP, astfel că trebuie să decidă dacă sunt sau nu prelucrate de voce. Expresia de mai sus a redus definește soluția:

  • În cazul în care nu există nici o problemă de identitate în datele POST (OR !!)
  • În cazul în care nu există nici un răspuns de identitate în datele POST (OR !!)
  • Cookie-urile sunt deja în concordanță cu problema ID-ul

Dacă oricare dintre aceste condiții sunt îndeplinite, atunci nu avem nevoie să se ocupe de voce, și apoi trebuie să părăsească metoda.

Acest cod pare mai complicat decât este de fapt. Acest lucru verifică dacă un răspuns clar Cel puțin un vot. Dacă nu, atunci vom crea o nouă intrare pentru răspuns și a înregistra o voce. Dacă există, vom actualiza înregistrarea existentă. Cum ar fi făcut?

DOP este utilizat excepție.

La începutul acestui tutorial am creat o cheie primară de mai multe domenii. Când încercăm să inserați o înregistrare într-un tabel care corespunde unei perechi de QD / ajutor existent. excepție este generat, care este codul 23000 (duplicat cheia primară).

Dacă operația de inserție aruncă o excepție, atunci trebuie să verificați codul de excepție și esl corespunde ion 23000 pentru a actualiza datele din înregistrarea. Desigur, în cazul în care introducerea de date a avut loc pentru un alt motiv, sau actualizare de înregistrare a eșuat, db_error () metodă se numește. care pur și simplu afișează un mesaj de eroare. În cazul unui proiect real, mesajul de eroare ar trebui să fie scris în jurnal și / sau informează administratorul.

Listele de vot folosind PHP

Intregind următoarea metodă linie:

C folosind ROWCOUNT (), putem verifica dacă vocea a fost procesată. În cazul în care înregistrarea vocală este de succes, am stabilit un cookie folosind identificatorul întrebării ca numele cookie-ului.

În plus, am stabilit valoarea pentru variabilele globale de super-explicativ privind $ _COOKIE, astfel încât atunci când sistemul golosvaniya afișează scoate imediat o listă de rezultate.

Pasul 12: Comasarea

Am scris un PHP, CSS și setați elementele de limbaj HTML a, acum suntem toate conectate împreună. În acest exemplu, am pus doar totul într-o nouă pagină goală. În partea de sus, introduceți următoarele linii:

Apoi, includem toate stilurile create ca o foaie de stil separat. De asemenea, este necesar să se includă anumite stiluri numai pentru IE, care pune la dispoziție o pseudo-clasă: Hover.

In corpul paginii noastre HTMLvstavlem următorul cod PHP:

Listele de vot folosind PHP

Prin obținerea de informații de la două canale (vedere si auz) eficacitatea instruirii de învățare departe superioare de cărți. O temele pentru acasă și teste on-line vă va permite să se gândească în mod constant în limba țintă și imediat verifica cunoștințele!

Listele de vot folosind PHP

Listele de vot folosind PHP

Dacă doriți o lungă perioadă de timp pentru a studia modul în HTML, mi-ai, pentru ai vesti bune!

Listele de vot folosind PHP

Dacă ați învățat deja HTML și doresc să avanseze, următorul pas va fi de a studia tehnologia CSS.

Listele de vot folosind PHP

Dacă doriți să înțeleagă conceptele de domeniu si hosting, învață cum să creeze o bază de date, încărca fișiere pe un site web prin intermediul unui server FTP, crea subdomenii, configurați cutiile poștale pentru site-ul și să monitorizeze participarea, acest curs este conceput special pentru tine!