списъци за гласуване Използване на PHP

списъци за гласуване се използват навсякъде в различните уеб проекти. В този урок ще създадем един прост PHP въз основа на списъка за гласуване.

Тъй като за нормалното функциониране на демонстрацията искате да подкрепите SQLite сървър, урока използва демонстрацията от оригиналния урок. За SQLlite връзка със сървъра може да се прочете тук.

Стъпка 1: Планиране и създаване на база данни

За формирането на изборните резултати, ние трябва да се поддържа следната информация:

  • Въпросът с ID
  • ID отговор
  • Брой на гласовете, които имам един въпрос / отговор двойка

В този урок ще използвате ЗНП и SQLite. PHP скрипт използва за създаване на базата данни:

списъци за гласуване Използване на PHP

Този прост скрипт създава SQLite база данни в директорията, където се извършва. За разлика от MySQL, базата данни е проста файл. SQL Създаване на изискване създава таблица, в която се помещава на първичния ключ:

Стъпка 2: Разработване на HTML маркиране списък за гласуване

Преди да започнете да генерира PHP код, трябва да се реши как ще изглежда гласуване списък по отношение на оформление. Ние ще запазим семантиката прости, колкото е възможно. списък за гласуване ще бъдат два вида:

  • Въпроси, които чакат да се отговори - вид въпроси
  • Текущ резултат от гласуването - под формата на резултатите от гласуването

Когато пишете HTML код, за да се използва CSS класове, които ще бъдат описани по-нататък в урока.

сортиране на въпроси

Тъй като списъкът на гласуване е набор от възможни отговора, тогава ние ще използваме неподреден списък, който ще съдържа отговорите. За самият въпрос ще се използва заглавието маркер.

Много просто, но няма формени елементи. В този случай, перфектни бутоните за избор, тъй като ние трябва само един отговор за отчитане на гласовете. Така че ние ще използваме етикет етикет за картографиране в отговор на желания бутон за избор. Сега нашата HTML форма ще изглежда така:

Трябва да добавите нещо. Ние ще използваме fieldset маркер, за да зададете опциите за стил и, разбира се, се нуждаят от бутона за изпращане на глас!

Всеки отговор ще създаде нов ли маркер. където стойността на радио бутон ще се увеличи. Тази операция в крайна сметка ще се изпълни PHP код.

Преглед на резултатите от гласуването

HTML код ще бъде подобен на вида на въпроси. Ли тагове няма да съдържат елементите на формата и ние ще добавим Разделение. който ще се използва за показване на процента на гласовете, които имам отговор:

Той използва референтни низ стилове. Тези стилове са генерирани в нашия PHP код, базиран на текущата стойност на процента от подадените гласове за всеки отговор. Ето как трябва да изглеждат някои видове:

списъци за гласуване Използване на PHP

Етап 3: форма Стил

В HTML код, който ние просто не изглеждаше много привлекателна. Ние трябва да направим оформлението на страницата по-привлекателна. Ще използваме библиотека прекрасен CSS3 PIE (Progressive Internet Explorer), така че страницата изглежда по същия начин във всички браузъри.

Стил за форма маркер

Ние възнамеряваме да използвате маркера за формуляра, като контейнера. Той ще има прекрасен заоблени краища и сянка. стил също така определя ширината и подложка.

Ключови линия - тази, която съдържа поведението на атрибут. Тя се игнорира от всички браузъри с изключение на IE, и добавя функционалност CSS3 IE6-8.

списъци за гласуване Използване на PHP

Външен вид все още е малко тромава, така че ще продължим да работим с стилове.

правоъгълник отговори

Сега се създаде добра правоъгълник отговори. Задава цвета на външната граница (fieldset) е същата като за фон, и неподреден списък ще се използва като истинска граница. Тук е кодът на CSS:

списъци за гласуване Използване на PHP

Стил на отговори

Сега трябва да добавите CSS стилове на нашите възможности изглеждат по-добре.

Защо ние използваме абсолютно позициониране за въвеждане на входа и плаващ позициониране на етикетите. Тъй като реакцията съдържа няколко линии. Ако отговорът е в списъка за гласуване ще бъде дълъг, радио бутона трябва да се появи като етикет при неподредените списъци - да се мотае в ляво на текста. По този начин ние се избегне потока на текста, ако съдържа няколко реда.

Там също така се използва стил, създаден специално за IE (символ *), който се основава на бутоните в правилния ред в IE6-8.

Можете също така трябва да се определят стила на лентите, показва резултатите от гласуването. Въведете код:

Налице е също специфична характеристика -pie-фон. което в комбинация с PIE библиотека позволява използването на градиент на фона в IE.

Въпрос и бутон

Стилът по подразбиране за маркер h4 не отговаря на нашите очаквания, така че добавянето на кода за него.

Освен това по подразбиране на бутоните не са много стилен външен вид, затова ще използваме CSS спрайтове за тях.

списъци за гласуване Използване на PHP

Довършителни работи

С цел да се определи някои странности на Internet Explorer 6, като добави някои елементи на функцията за мащабиране. Имотът е игнориран от всички други браузъри.

Също така, можете да видите на границата между проблемите. Тя се осъществява с помощта на допълнителен клас за тага Ли. който се определя на всички елементи от списъка в PHP скрипта.

Напълно CSS файл е наличен в изходния код.

Стъпка 4: Създаване на PHP клас - изберете интерфейс

Сега е време да се създаде PHP код за генериране на списъка за гласуване, обработка на глас, и на изхода на резултатите. Ние ще се опитаме да спаси сценария толкова просто, колкото е възможно. За да създадете списък за гласуване на определено място на една страница, използвайте следната код PHP:

Просто премине строителя масив, съдържащ въпроса последван от отговора. За да следите на въпроси в базата данни, ние ще използва MD5 хеш на въпроса като идентификатор.

Стъпка 5: Избор на свойствата на класа

Някои данни са необходими за всички избирателните списъци. Ние ще се съхранява част от данните в свойствата на класа. Необходимо е да се запази въпросите и отговорите, на основния план на HTML, издаде ID, както и информация за това как да се покаже лентата с резултати. По-долу е кодът на PHP:

инициализация константи се използват от един от методите за да се улесни определянето на състоянието на процеса на глас.

идентификатор на въпрос се използва за съхраняване на информация в база данни. Всички стойности в HTML кода затворена между знаци за процент ще бъдат заменени.

Стъпка 6: Създаване на HTML код за избирателните списъци, или да отговори на

Тъй като списъкът на гласуване ще се създаде обект, ние обясни метод __construct.

В първия ред, ние приемаме от въпроса за масива на стека използване array_shift функция. и го запишете в имота. Отговорите се съхраняват в масив. Ние също така се създаде проблема ID, функцията md5.

Следващите три линии представят стойностите на подмяна в HTML кода. Първият задава форма действие за страницата, която е домакин на избирателните списъци. Вторият ред поставя идентификатора на въпрос в областта скрита форма. Третият ред поставя въпроса ни в HTML кода.

Последният ред в конструктора, ние проверяваме дали в този списък или не на потребителя е гласувал. Ако той е гласувал, ще бъдат показани резултатите от гласуването, а ако не - тогава списъка за гласуване.

Стъпка 7: Създаване на списък на гласуване

И двата процеса - генериране на списъка с резултатите от гласуването и поколение - са много подобни операции. С цел да се придържа към принципа DRY (Не се повтаря) разделят процеса на създаване на списъка за трите метода. Основният метод - анкета.

списъци за гласуване Използване на PHP

Това е, което се случва в този метод:

Линии 2 и 3: Бутон "Гласувай", ние трябва само, ако потребителят не е гласувал. Тук ние се определи дали ние използваме бутона или не. След това го поставете в HTML кода, заменяйки% бутона или кода% бутон, или празен низ.

Line 6 - 8: ако не се покаже списък на гласуване, а след това ние се нуждаем резултати. Тук се вземат данните. Също така ние се изчисли общия брой гласове, които ще бъдат използвани по-късно, за да се определи процента.

Редове 11-12: GENERATION ли маркира нашия HTML код. В зависимост от това, което ние се заключи (списък на глас, а резултатите), генерира различен код HTML. Процесът се контролира от две функции:

Линия 15: А просто изходните данни за страницата.

Етап 8: pollLine () метод

Това е един много прост метод, който получава индекса на текущата реакция като аргумент.

Тя проверява дали има още отговори след това, и ако е така, задава CSS класа до границата за това ли маркер. Последен отговор няма да бъде в този клас, като по този начин постигане на желания визуален ефект.

Етап 9: voteLine () метод

Този метод отнема три аргумента:

  • $ Отговор. Отговорът на въпроса за тази линия
  • $ Резултати. Брой на гласовете, които имам този отговор
  • $ гласове. Общият брой на гласовете в анкетата

Получените данни на маркер се генерира за показване на Li резултати.

Тъй като това е възможно, че отговорът няма да има от гласовете в общото. Проверяваме променлив резултат $. и ако това не е от значение това, което се задава по подразбиране 0.

След това определя какъв процент от гласовете получила отговор, както и с помощта на набор ширината на скала мащаб в пиксели за резултата на лентата. Тогава HTML код се връща, което sodderzhit цялата необходима информация.

Етап 10: Писане метод getData ()

getData () метод се определя като статичен. Защо? Ако решим да се разшири функционалността на системата ни за в бъдеще с помощта на AJAX, ние ще трябва да се обадите на този метод, без създаване на обект. Тук е метод кодекс:

ID значение се предава на метод, който връща масив, ID отговорите и на броя на гласовете, които няма отговор.

Стъпка 11: Voice Обработка

Отиваме да добавите втори статичен метод към класа. Този метод ще обработва получената гласът. Voice брои, ако потребителят не е гласувал преди това (определено чрез бисквитки). След като потребителят е гласувал, ние се sootvettsvuyuschie бисквитки.

Метод повикване глас () ще бъде поставен в горната част на нашия PHP страница, така че ние трябва да реши дали да обработват глас. Над намалена експресия определя разтвора:

  • Ако няма проблем ID в данните от POST (OR !!)
  • Ако няма ID отговор в данните от POST (OR !!)
  • Cookies вече са в съответствие с проблема с ID

Ако е изпълнено някое от тези условия, тогава ние не се нуждаем, за да се справят с глас, а след това се наложи да напусне метод.

Този код изглежда по-сложно, отколкото е в действителност. Това проверява дали еднозначен отговор Най-малко един глас. Ако не, тогава ние създаваме нов запис за отговор и запис на глас. Ако има, ние ще се актуализира съществуващото записа. Как е, че за да се направи?

ЗНП се използва изключение.

В началото на този урок ние създадохме първичен ключ от няколко области. Когато се опитваме да вмъкнете запис в таблица, която съответства на съществуваща двойка QID / помощ. Изключение се генерира, който код е 23000 (дублира първичен ключ).

Ако операцията по вмъкване хвърля изключение, тогава ние трябва да проверите кода за изключение и ESL йонна съответства на 23 000 за актуализиране на информацията в този списък. Разбира се, ако е настъпило вмъкване на данни по друга причина, или запис актуализация не е успял, метод db_error () се нарича. който просто показва съобщение за грешка. В случай на реален проект съобщението за грешка трябва да бъдат написани в дневника и / или информира администратора.

списъци за гласуване Използване на PHP

Усъвършенстването следния метод ред:

С помощта на rowCount (), можем да потвърдим, че гласът е била обработена. Ако регистрацията на гласа е успешно, ще създаде бисквитка използвайки идентификатора на въпроса, тъй като името на бисквитката.

В допълнение, ние задайте стойността на световните супер-обяснителен Променливите $ _COOKIE, така че, когато извеждате golosvaniya система веднага показва списък с резултати.

Стъпка 12: След като се обединят заедно

Ние написахме PHP, CSS и да зададете HTML маркирането е, сега всички ние сме свързани помежду си. В този пример, ние просто сложи всичко в нова празна страница. В горната част, поставете в следните направления:

След това, ние включваме всички стилове, създадени като отделен стил лист. Също така е необходимо да се включат определен стил само за IE, което го прави достъпно за псевдо-клас: висене.

В тялото на нашата страница HTMLvstavlem следния код PHP:

списъци за гласуване Използване на PHP

До получаване на информация от два канала (зрение и слух) на ефективността на обучението далеч по-добър живот от книги. А домашните задачи и онлайн тестове ще ви позволи да мисля постоянно в целевия език и веднага провери знанията си!

списъци за гласуване Използване на PHP

списъци за гласуване Използване на PHP

Ако искате по-дълго време, за да проучи как да се HTML, че ме има, за което трябва добра новина!

списъци за гласуване Използване на PHP

Ако вече сте се научили HTML и искат да се движи напред, следващата стъпка ще бъде да се проучи CSS технологията.

списъци за гласуване Използване на PHP

Ако искате да се разбере концепцията на домейн и хостинг, да научат как да се създаде база данни, да качвате файлове към уеб сайт чрез FTP сървър, създаване на поддомейни, да конфигурирате пощенските кутии за сайта и мониторинг на посещаемостта, този курс е разработен специално за вас!