Как сделать опрос в html

от admin

Как быстро создать опрос на вашем сайте с помощью форм Google?

Рано или поздно, практически все, у кого есть собственный сайт, сталкиваются с необходимостью создания форм обратной связи для сбора данных (проведения опросов) с посетителей сайта.

Это может быть форма в разделе контакты, через которую посетители сайта будут отправлять вам интересующие их вопросы, может быть форма сбора заявок от клиентов (например, заявки на обратный звонок или заявки на покупку товара), а может быть форма для проведения опроса или голосования по интересующей вас теме.

Есть несколько подходов в создании подобных форм:

• Формы можно сделать, используя теги HTML и завязать нажатие кнопки «Отправить» с отправкой введенных данных вам на email

• Можно сделать связку PHP+MySQL (или любой другой язык программирования и базу данных) и все введенные данные сохранять в базу данных для дальнейшей работы.

• Если ваш сайт сделан с использованием какой-нибудь популярной CMS (например, Joomla, Drupal или WordPress), то вы можете поискать в сети плагины, модули и компоненты, которые достаточно просто позволяют создавать формы

• А можно для создания форм обратной связи использовать бесплатные инструменты всем известного Google.Docs

И в этой статье я хотел бы показать как с помощью Google.Docs вы можете легко и быстро создавать всевозможные формы опроса для ваших сайтов.

Первое что вам необходимо сделать, это войти в ваш почтовый ящик в почтовом сервисе Gmail (в ваш аккаунт в сервисе google): https://accounts.google.com/

Далее, в верхнем вертикальном меню выберите пункт Диск.
Как быстро создать опрос на вашем сайте с помощью форм Google?

На открывшейся странице в левом вертикальном меню наживаем кнопку «Создать» и из выпадающего списка выбираем пункт «Форма»
Как быстро создать опрос на вашем сайте с помощью форм Google?

После чего мы оказываемся в бесплатном редакторе форм от Google.Docs, и именно в нем мы и будем создавать наши формы.

В первом же окне редактор форм от google нас запрашивает название нашей будущей формы и предлагает выбрать тему оформления из уже существующих тем.
Как быстро создать опрос на вашем сайте с помощью форм Google?

После того как название введено и выбор темы оформления сделан, жмем кнопку «Ок», и мы попадаем на страницу редактирования нашей формы.

Обо всех возможностях и настройках редактора форм от Google я в этой статье рассказывать не буду, т.к. большинство вещей познаются «методом тыка», плюс ко всему, есть не самая плохая справка от Google: support.google.com/drive/bin/topic.py?hl=ru&topic=1360904&parent=2811744&ctx=topic. Здесь же хочу остановиться лишь на тех моментах, которые нужно знать, чтобы прямо сейчас создать свою первую форму.

Итак, перед вами интерфейс редактора форм от Google:
Как быстро создать опрос на вашем сайте с помощью форм Google?

Сверху редактора есть небольшое горизонтальное меню, отвечающее за основные настройки формы. В нем вы можете сменить тему оформления, изменить настройки сохранения вводимых данных (сохранять в новую таблицу Google.Docs или в новую вкладку существующей таблицы), а также открыть созданную форму для просмотра, нажав на кнопку «Открыть форму»

Ремарка: Обязательно задайте настройки сохранения, нажав на кнопку «Сохранить ответы». Если вы выберите в настройках сохранения «Новая таблица», то Google автоматически создаст для вас новую таблицу, название которой будет совпадать с именем созданной вами формы и припиской (Ответы)

Чуть ниже находятся настройки видимости вашей формы. С помощью данных настроек вы можете разрешить просмотр формы для всех (снять все галочки) или наоборот сделать доступной форму только для пользователей данного домена и для её заполнения нужно будет пройти авторизацию.

С настройками видимости будьте внимательней. Хотя из всех настроек всего две галочки, но если вы в них ошибетесь, то все ваш опрос может провалиться, люди просто не получат доступ к форме.

Далее, находятся кнопки редактирования элемента добавленного в форму. Вы в любой момент можете изменить подпись к элементу формы, подсказку (пояснение), изменить тип элементе (Google предлагает нам на выбор 7 различных элементов, от простого тактового поля ввода данных, до целого двумерного массива элементов radiobutton), любой элемент можно сделать обязательным для заполнения и т.д.

В самом низу страницы с редактором находится блок «Изменение подтверждения». В нем вы можете разрешить повторно заполнять форму, сделать видимой ссылку на результаты проводимого опроса для всех желающих, разрешать респондентам изменять свои ответы после заполнения и изменить текст подтверждения, который будет выводиться всем респондентам заполнившим форму опроса.

Возможность изменения текста выводимого после заполнения формы, даст вам возможность не только более изыскано поблагодарить респондента прошедшего опрос, но и, например, дать ему ссылку на скачивания какого-нибудь подарка, в качестве вознаграждения за проделанный труд.

После того как все необходимые поля формы добавлены, в верхнем меню нажмите на кнопку «Открыть форму» и вы увидите свое детище со всеми элементами и полями ввода:
Как быстро создать опрос на вашем сайте с помощью форм Google?

Далее вы можете отправить свою созданную форму опроса по почте, передать респонденту ссылку на данную форму или встроить в ваш сайт.

Встраивание в сайт элементарно. Вам нужно просто в верхнем меню редактора формы выбрать пункт «Файл->Встроить в веб-страницу…» и система сгенерит вам iframe для вставки в ваш сайт, блог и т.д.
Как быстро создать опрос на вашем сайте с помощью форм Google?

Вот и все, наша новая форма опроса посетителей сайта готова!

Все данные заполняемые респондентами будут доступны для вас в таблицах Google.

Помимо этого, вы в любой момент сможете посмотреть общую статистику по динамике заполнения полей вашей новой формы в разделе верхнего горизонтального меню «Ответы->Сводка ответов»:
Как быстро создать опрос на вашем сайте с помощью форм Google?

Как видите, подобный инструмент достаточно гибок в настройках и позволит вам за считанные минуты создать и провести опрос посетителей вашего сайта или же любой другой группы респондентов.

При этом вам не нужно самому верстать HTML-форму, не нужно организовывать взаимодействие с БД, не нужно заниматься поиском подходящих к используемой вами CMS плагинов, модулей и компонентов. А также не нужно кодить интерфейсы отображения статистики с отображением результатов опроса.

Плюс ко всему, если вы на подобную форму опроса кинете большой трафик, то с большой вероятностью Google сервера это выдержат!

Да и все введенные опрашиваемыми респондентами данные будут всегда доступны для вас в вашем аккаунте Google.

Как сделать голосовалку для сайта

Александр Мальцев

Как можно создать опросы на сайте, которые сохраняют данные не в базу, а в обычный текстовый файл.
Данная инструкция пригодиться не только тем, у кого нет CMS, но и тем, у кого она есть. Кроме этого данный вариант может также пригодиться тем, у кого имеются высоконагруженные сайты, т.к. предложенная голосовалка для сайта практически не будет создавать нагрузку на процессор, а базу данных она вообще не использует.
Работать созданная система опроса на сайте будет через AJAX и использовать COOKIE (для защиты от накрутки).

Скриншоты, т.е. как будет выглядеть блока опроса и его результаты на сайте:
Форма для голосования -1Результаты формы для голосования -1
Форма для опроса -2Результаты формы для голосования -2

Создание опроса на сайте: варианты организации голосования

Опросы и голосования помогают оживить сайт, получить представления о взглядах читательской аудитории, вовлечь посетителей в процесс общения с автором проекта и другими пользователями. Как же организовать на сайте опрос?

Сервис Rupoll.com

С помощью сервиса Rupoll.com можно в считанные минуты создать опрос и установить постой информер на свой сайт.

внешний вид с Rupoll.com

Инструкция:

  1. Перейдите по ссылке www.rupoll.com.
  2. Нажмите «Создать опрос».
    создаём опрос с
  3. В поле «Главный вопрос опроса» напишите вопрос, которому посвящено ваше голосование.
  4. Напишите варианты ответов, столько, сколько нужно.
    Напишите варианты ответов, столько, сколько нужно
  5. Отметьте галочкой ваше согласие с правилами сервиса.
  6. Нажмите «Создать опрос».
    Нажмите «Создать опрос»
  7. Перейдите по самой нижней из появившихся ссылок.
    Перейдите по самой нижней из появившихся ссылок
  8. Выберите код информера с самым привлекательным на ваш взгляд дизайном.
  9. Скопируйте код формы опроса и вставьте на сайт.
    Скопируйте код формы опроса и вставьте на сайт
  10. В коде исправьте небольшую ошибку разработчиков: вместо тега </td> после главного вопроса напишите </th>.

Плагин для CMS

WP-Polls является одним из популярнейших плагинов для организации голосований в WordPress. Для других популярных CMS есть аналогичные решения.

Инструкция

Во вкладке «Add Poll» Создайте опрос: напишите вопрос, укажите варианты ответов, отредактируйте опцию выбора нескольких ответов, задайте дату старта и завершения голосования

  1. Установите плагин из админки стандартным способом.
  2. В консоли WordPress найдите раздел WP-Polls.
  3. Во вкладке «Add Poll» Создайте опрос: напишите вопрос, укажите варианты ответов, отредактируйте опцию выбора нескольких ответов, задайте дату старта и завершения голосования.
  4. В разделе «Poll Options» («Опции голосования») настройте стиль элементов опроса, определите принцип сортировки доступных ответов и полученных результатов, ограничьте при необходимости доступ к голосованию неавторизованным на сайте пользователям.
  5. В разделе «Poll Templates» («Шаблоны голосования») настройте отображение текстового контента формы опросов.
  6. Опубликуйте опрос в сайдбаре с помощью виджета в тексте записи/страницы с помощью кнопки insert poll или шорткода.

Виджет ВК

  1. Зайдите в ВК, на страницу, которая открывается через пункт меню «Моя страница».
  2. Найдите под фотографиями строку «Что у Вас нового?».
    Найдите под фотографиями строку "Что у Вас нового?"
  3. Поставьте в строку курсор.
  4. Как только появится ссылка «Еще» – наведите на нее курсор.
    Как только появится ссылка «Еще» – наведите на нее курсор
  5. Кликните «Опрос»
  6. В поле «Тема опроса» напишите вопрос, который будет на повестке голосования.
  7. Укажите варианты ответа.
  8. Кликните «Отправить».
    Кликните «Отправить»
  9. В левом нижнем углу получившегося опроса нажмите «Получить код».
    В левом нижнем углу получившегося опроса нажмите «Получить код»
  10. Скопируйте код виджета и разместите на сайте.
    Скопируйте код виджета и разместите на сайте

Google Forms

Сервис Google позволяет просматривать статистику голосования, наглядно увидеть ответы пользователей в формате диаграммы.

Для того чтобы создать опрос с помощью Google, нужно иметь почту @gmail.com.

  1. Перейдите на сайт поисковой системы Google, убедитесь, что вы авторизованы.
  2. В правом верхнем углу найдите иконку из 9 маленьких квадратиков и кликните на нее.
    В правом верхнем углу найдите иконку из 9 маленьких квадратиков и кликните на нее
  3. В открывшемся меню выберите «Диск».
     В открывшемся меню выберите "Диск"
  4. Нажмите кнопку «Создать».
    Нажмите кнопку "Создать"
  5. В выпавшем меню выберите «Еще» и «Google Формы».
    В выпавшем меню выберите «Еще» и «Google Формы»
  6. Укажите заголовок формы, главный вопрос, варианты ответа.
    Укажите заголовок формы, главный вопрос, варианты ответа
    ​Справа от формы находятся блок с кнопками. С их помощью можно:

— добавить еще один вопрос;

— указать название и описание опроса;

  1. Нажмите кнопку «Отправить» в правом верхнем углу страницы.
    Нажмите кнопку «Отправить» в правом верхнем углу страницы
  2. Кликните по иконке с изображением знаков <>.
    Кликните по иконке с изображением знаков <>
  3. Скопируйте HTMLкод формы. (Если нужно, отредактируйте размеры формы)
    Скопируйте HTMLкод формы. (Если нужно, отредактируйте размеры формы)
  4. Разместите код опроса на сайте.

Интересные опросы с оригинальными ответами и ноткой юмора добавят изюминку вашему сайту, а также улучшат его поведенческие факторы.

Если хотите получить перспективную профессию или освоить новый навык (будь то SEO, HTML, веб-программирование или даже мобильная разработка), то посмотрите ТОП-3 лучших онлайн школ:

    — одна из старейших школ интернет-профессий. Основные направления — маркетинг, управление, дизайн и программирование; — специализируется, в первую очередь, на обучении программистов. После интеграции в Mail Group появились и другие профессии; — наиболее молодая из 3-х перечисленных школ, но обладает наибольшим ассортиментом специальностей. Если услышали о какой-либо экзотической профессии, то наверняка этому уже обучают в Skillbox.

Эти школы выдают дипломы и помогают с трудоустройством, а если вам нужно просто научиться что-то делать для себя больше как хобби, то рекомендую начать с бесплатных курсов, они позволят получить общее представление о профессии и первый практический опыт.

Создание веб-опроса с помощью PHP

Опросы сегодня почти повсеместно распространены в Интернете, и существует множество сервисов, которые предоставят вам опрос. Но что, если вы хотите написать один самостоятельно? Из этого туториала вы узнаете, как создать простой опрос на основе PHP, включая настройку базы данных, обработку голосования и отображение опроса.

Шаг 1: Планирование и создание базы данных

Чтобы сохранить результаты опроса, мы собираемся хранить три фрагмента информации:

  • Идентификатор вопроса
  • Идентификатор ответа
  • Количество голосов, полученных парой вопрос / ответ

Для этого урока мы будем использовать PDO и SQLite. Если вы работаете с SQLite3, вы можете создать новую базу данных с помощью инструмента командной строки; Если вы используете более старую версию, быстрый PHP-скрипт поможет вам. Вот тот, который используется для этого урока:

Структура базы данных для голосования

Этот простой скрипт создаст базу данных SQLite в каталоге, в котором вы ее запускаете. В отличие от mySQL, база данных здесь представляет собой простой файл. Если вы знакомы с SQL, create должно иметь смысл для вас, хотя для некоторых людей последняя строка может быть новой:

Это создает составной ключ для базы данных. Записи в любом столбце не обязательно должны быть уникальными для этого столбца, но комбинация двух должна быть уникальной.

Шаг 2. Создайте HTML-код вашего опроса

Прежде чем вы начнете писать какой-либо PHP, вам нужно решить, как создать свой опрос с точки зрения разметки. Мы постараемся сделать разметку максимально семантической и простой. Ваш опрос будет иметь два вида:

  • Вопрос ждет ответа
  • Текущие результаты опроса

При написании этого HTML некоторые классы будут включены, чтобы помочь с CSS позже.

Вид опроса

Поскольку опрос – это, прежде всего, список ответов, мы собираемся включить неупорядоченный список, содержащий эти ответы. Для самого вопроса мы будем использовать тег заголовка.

Читать:
Что делать если тормозит дота 2

Это довольно просто, но не включает никаких элементов формы. Радио кнопки являются наиболее подходящими, так как мы разрешаем только один ответ на опрос. Также мы собираемся использовать тег label, чтобы связать ответы с нужным переключателем. Теперь наша форма HTML выглядит примерно так:

Это немного сложнее, но не так уж плохо. Еще немного добавить. Мы собираемся включить тег fieldset, чтобы открыть некоторые параметры стиля, и, конечно, нам нужна кнопка отправки!

Для каждого ответа добавляется новый тег LI и значение переключателя увеличивается. Это в конечном итоге будет сделано нашим PHP. Дополнительный HTML – это тег fieldset и абзац, обернутый вокруг кнопки – оба будут использоваться нашим CSS.

Просмотр ответа

HTML будет почти идентичным для представления ответа. Теги линейных позиций не будут содержать элемент формы, и мы добавим div, который можно использовать для отображения процента голосов, полученных за ответ. Вот как это будет выглядеть:

Да, это встроенный стиль, который вы видите там. Этот стиль будет сгенерирован нашим PHP на основе текущего процента каждого отдельного ответа. Вот что мы имеем до сих пор:

Unstyled Опрос

Шаг 3: стиль формы

HTML-код, который мы создали на последнем этапе, был не очень привлекательным. Давайте посмотрим, сможем ли мы это исправить. Мы собираемся использовать замечательную библиотеку CSS3 PIE (прогрессивный Internet Explorer), чтобы мы могли получить похожий вид во всех браузерах. Чтобы эта библиотека работала должным образом, во многих случаях необходимо применять относительную позицию к элементам. Вы можете прочитать все подробности на сайте библиотеки.

Стиль тега формы

Мы собираемся использовать тег формы в качестве нашего контейнера. У него будут красивые закругленные углы и немного тени. Стили ниже также определяют ширину и отступы.

Ключевой строкой здесь является атрибут поведения. Это будет игнорироваться браузерами не IE и добавит функциональность CSS3 в IE6-8.

Основной стиль

Все еще некрасиво, но заметное улучшение.

Вставить ответы

Далее мы собираемся создать красивую рамку вокруг ответов и использовать немного иллюзии, чтобы граница выглядела вставленной в пиксель. Это делается путем окрашивания самой внешней границы (набора полей) того же цвета, что и интерьер, а затем с помощью тега неупорядоченного списка в качестве нашей реальной границы. Вот CSS:

Основной стиль

Стиль ответы

Затем нам нужно добавить немного CSS, чтобы наши параметры выглядели лучше.

Вы можете спросить, почему мы используем абсолютное позиционирование на входах и плавающую метку. Причина проста: многострочные ответы. Если ответ на ваш вопрос об опросе длинный, вы хотите, чтобы кнопка-переключатель выглядела как пуля в неупорядоченном списке – зависание. Это не позволит тексту обернуться вокруг него, если он состоит из нескольких строк.

Существует также стиль, нацеленный на IE, в частности, с хаком *, чтобы кнопки правильно выстроились в IE6-8.

Нам также нужно стилизовать панель, используемую для отображения результатов. Мы добавим это сейчас:

Здесь есть еще один новый атрибут: -pie-background, который позволяет нам, в сочетании с библиотекой PIE, использовать градиентные фоны в IE. Есть еще несколько штрихов, чтобы добавить.

Вопрос и кнопка

H4 по умолчанию может не соответствовать тому, что вы ищете, поэтому давайте добавим немного стиля.

И я не большой поклонник кнопок по умолчанию, поэтому мы собираемся использовать CSS-спрайт, чтобы немного оживить его.

А как насчет IE6? Он не поддерживает псевдо-класс парения! Мы можем либо оставить этих пользователей на морозе (они все равно увидят состояние кнопки по умолчанию), либо мы можем использовать другую симпатичную лицензированную GPL-библиотеку, Whither: hover .

Финальный опрос CSS

Последние биты

Чтобы учесть некоторые особенности IE6, для определенных элементов должно быть запущено что-то под названием «HasLayout». Самый простой способ сделать это – установить свойство zoom для этих элементов. Это свойство игнорируется не браузерами IE.

Вы также заметите, что между каждым вопросом есть границы. Это было сделано с помощью дополнительного класса на тегах LI, определяющих границу. Класс будет назначен всем, кроме последнего элемента, скриптом PHP.

Заполненный файл CSS содержится в загрузке.

Шаг 4: Создайте класс PHP – определитесь с интерфейсом

Теперь пришло время создать PHP для генерации опросов, отображения результатов и обработки голосов. Я хотел бы продолжать использовать скрипт как можно проще, поэтому я планирую использовать его заранее. Чтобы создать опрос в определенном месте на странице, вы просто используете следующий PHP:

Вот и все. Вы передадите массив конструктору, который содержит вопрос, за которым следуют ответы. Чтобы отслеживать вопросы в базе данных, мы создадим хэш MD5 для вопроса, который будет использоваться в качестве идентификатора.

Шаг 5: Определите свойства класса

Есть определенные данные, которые будут необходимы для каждого опроса; мы собираемся хранить некоторые из них в свойствах класса. Нам нужно будет хранить вопрос и ответы, базовый HTML-код, идентификатор вопроса и некоторую информацию о том, как рисовать панели результатов. Вот начало:

Начальные константы будут использоваться в одном из методов, чтобы сделать его более читабельным, чтобы было легче узнать, что происходит.

Обратите внимание на скрытый ввод, который был добавлен здесь. Это идентификатор вопроса, используемый для хранения информации в базе данных. Все значения в HTML, окруженные знаками процента, будут заменены.

Шаг 6. Создайте HTML-опрос или ответы

Поскольку уже решено, что опрос будет проведен путем создания объекта, давайте рассмотрим метод __construct.

В первой строке мы очищаем вопрос от стека массивов с помощью array_shift и сохраняем его в свойстве. Мы также храним вопросы, оставляя их в виде массива. Здесь мы также создаем идентификатор вопроса, создав хэш md5 для самого вопроса.

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

В последней строке конструктора мы проверяем, проголосовал ли пользователь в этом конкретном опросе, и, если он проголосовал, мы показываем голоса. Если нет, мы покажем опрос.

Шаг 7: Генерация опроса

И генерация опроса, и генерация результатов очень похожи. Чтобы сохранить наш код сухим, мы разбиваем создание на три метода. Основным является «опрос».

СУХОЙ: не повторяйся

Вот разбивка того, что происходит в этой функции:

Строки 2 и 3: нам нужна кнопка голосования, только если пользователь не голосовал. Здесь мы определяем, будем ли мы использовать кнопку HTML или нет, а затем либо вставим HTML, либо заменим заполнитель% button% пустой строкой.

Строки 6 – 8: Если мы не показываем опрос, нам, очевидно, нужны результаты, поэтому мы идем за ними. Мы также рассчитываем общее количество голосов, поданных за использование в дальнейшем при определении процентов.

строки 11 – 12: это генерирует теги LI в нашем HTML. В зависимости от того, показываем ли мы опрос или результаты, мы генерируем другой HTML. Это поколение HTML передается двум функциям:

  • pollLine
  • voteLine

строка 15: просто выводит данные на страницу.

Шаг 8: Метод pollLine ()

Это очень простой метод, который принимает текущий индекс ответа в качестве аргумента.

Он проверяет, есть ли ответ после текущего в его первой строке, и, если он есть, применяет класс границ к этому тегу LI. Самый последний ответ не получит этот класс, позволяющий нам достичь намеченного визуального эффекта.

Шаг 9: Метод voiceLine ()

Этот метод получает 3 переданных параметра:

  • $ answer: Ответ на вопрос для этой строки
  • $ результат: количество голосов, которое получила эта опция
  • голосов: общее количество голосов, поданных в этом опросе

С этой информацией могут быть получены теги LI для результатов голосования.

Поскольку возможно, что за опцию не будет ни одного голоса, результат $ оставит неустановленным. Если мы обнаружим это, мы дадим ему значение по умолчанию 0 голосов.

Затем мы определяем, какой процент голосов получила опция, и, наконец, используем свойство scale для определения ширины в пикселях, которой должна быть панель результатов. Затем мы наконец возвращаем HTML, содержащий всю эту информацию.

Шаг 10: Напишите метод getData ()

Если вы немного оглянетесь назад, то увидите, что мы вызываем метод getData (), который определен как статический метод в классе. Почему статический? Потому что, если мы решим расширить этот опрос позже, сделав его на основе AJAX, нам понадобится доступ к этому методу без создания объекта. Вот метод:

Идентификатор вопроса передается в метод, и он возвращает массив, содержащий идентификаторы ответов и количество голосов, которые имеет ответ. Если ответ не имеет голосов, у него не будет записи в массиве, с которой мы уже работали в методе voiceLine ().

Так как ошибки базы данных в веб-опросах особенно трагичны, мы просто собираемся вернуть пустой массив, если он возникнет. Пользователь получит 0 голосов за каждый результат. В производственной среде вы можете записать эту ошибку в файл или отправить администратору электронное письмо.

Шаг 11: Обработка голосования

Мы собираемся добавить второй статический метод в класс, и он будет обрабатывать входящие голоса. Голоса будут учитываться только в том случае, если пользователь ранее не голосовал (как определено с помощью файла cookie), и после того, как пользователь проголосовал, мы установим файл cookie, указывающий на это.

В этом типе веб-приложений практически невозможно остановить несколько голосов без исключения некоторых законных пользователей. Установка cookie – это лишь основная мера предосторожности.

Это один из более сложных методов в нашем классе webPoll, и мы рассмотрим его в трех частях.

Вызов метода голосования () будет в верхней части нашей страницы PHP, поэтому первое, что мы хотим сделать, это решить, есть ли голос для обработки или нет. Вышеупомянутое утверждение – то, как мы определяем это. Вот что это говорит:

  • Если в наших данных POST нет идентификатора вопроса (ИЛИ !!)
  • Если в наших данных POST нет идентификатора ответа (ИЛИ !!)
  • Если файл cookie уже установлен в соответствии с идентификатором вопроса

Если что-то из этого является правдой, нам не нужно обрабатывать голосование, и мы покидаем метод.

Это выглядит намного сложнее, чем на самом деле. Что происходит здесь, мы проверяем, получил ли конкретный ответ голосование раньше. Если этого не произошло, мы создаем новую запись для этого ответа и даем ему один голос. Если это так, мы обновляем существующую запись. Так как же решить, что делать?

ЗОП исключение магия.

Помните, в самом начале мы создали наш многоколонный первичный ключ? Когда мы пытаемся вставить в таблицу запись, которая соответствует существующей паре QID / AID, выдается исключение, в частности код исключения – 23000 (дубликат ключа).

Если вставка выдает исключение, мы собираемся проверить код исключения, а если он соответствует 23000, мы попытаемся обновить запись. Конечно, если вставка не удалась по другой причине или обновление также не удалось, мы просто вызовем метод с именем db_error (), который просто выводит общее сообщение об ошибке. Как и раньше, производственная среда регистрирует эту ошибку и / или уведомляет администратора.

Использование исключений PDO

Наконец, конец метода:

Используя rowCount (), мы можем убедиться, что мы обновили или вставили голосование. Если голос был успешно зарегистрирован, мы устанавливаем файл cookie, указывающий столько же, используя идентификатор вопроса в качестве имени файла cookie.

В дополнение к настройке файла cookie, мы заполняем суперглобальный $ _COOKIE, поэтому при отображении опроса отображаются ответы, а не повторное представление опроса.

Шаг 12: приведи все в действие

Мы написали PHP, настроили CSS и HTML, теперь пришло время использовать все это. В этом примере мы просто поместим все на страницу, которая в противном случае пуста. В самом верху страницы вставьте следующее:

Важно, чтобы это была самая верхняя часть страницы перед любым HTML. Почему? Потому что, если есть голосование для обработки, куки могут быть записаны, и вы не можете писать куки после того, как что-то еще было отправлено. Вызов статического метода голосования () возвращает, если нет необходимых данных POST для обработки.

Далее мы включим все стили, которые мы написали, в отдельную таблицу стилей. Кроме того, мы собираемся включить определенный стиль только для IE, который был упомянут ранее, чтобы включить псевдо-класс: hover.

Похожие статьи