Статьи

Разработка многостраничной формы в WordPress: многостраничная обработка

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

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

Шаг 1: Получить данные POST со второй страницы формы

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

Начиная с вашего комментария «Стартовая страница 3 формы», мы собираемся удалить операторы echo, которые отображают входные данные формы нашей страницы 2, и заменить его на наш оператор UPDATE

Мы не хотим снова использовать $wpdb->insert Вместо этого мы используем $wpdb->update$form_idELSEIF

[sourcecode language = ”php”]

// Стартовая страница 3 формы
elseif ($ page == 2) {

$ пол = $ _POST [‘пол’];
$ age = $ _POST [‘age’];
$ образование = $ _POST [‘образование’];
$ доход = $ _POST [‘доход’];
$ page = $ _POST [‘page’];
$ form_id = $ _POST [‘form_id’];

$ page_two_table = ‘shopping_preferences’;
$ page_two_inputs = array (
‘пол’ => $ пол,
‘age’ => $ age,
‘образование’ => $ образование,
‘доход’ => $ доход,
‘page’ => $ page
);
$ page_two_where = array (
‘id’ => $ form_id
);

$ insert_page_two = $ wpdb-> update ($ page_two_table, $ page_two_inputs, $ page_two_where);

}; // Конечная страница 3 формата

[/исходный код]

Прежде всего, мы используем POST Поскольку вторая страница завершена, мы хотим вставить эти данные формы.

Далее мы берем данные $wpdb Слишком просто, правда?

Затем мы начинаем назначать наши данные массивам для вставки через where У нас есть таблица, входные данные и информация о местоположении, которая требуется WordPress при обновлении строки.

Наконец, мы вызываем $wpdb->update Ну, почти.

Шаг 2: Оценка результатов формы

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

Помните, что есть три возможности для пола: ничто, мужчина и женщина. Таким образом, у нас должно быть три заявления IF

Для женщин-респондентов у меня будут другие варианты по сравнению с мужчинами. Если человек указал себя как «ни одного» для пола, он получает все варианты.

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

[sourcecode language = ”php”]

// Стартовая страница 3 формы
elseif ($ page == 2) {

$ пол = $ _POST [‘пол’];
$ age = $ _POST [‘age’];
$ образование = $ _POST [‘образование’];
$ доход = $ _POST [‘доход’];
$ page = $ _POST [‘page’];
$ form_id = $ _POST [‘form_id’];

$ page_two_table = ‘shopping_preferences’;
$ page_two_inputs = array (
‘пол’ => $ пол,
‘age’ => $ age,
‘образование’ => $ образование,
‘доход’ => $ доход,
‘page’ => $ page
);
$ page_two_where = array (
‘id’ => $ form_id
);

$ insert_page_two = $ wpdb-> update ($ page_two_table, $ page_two_inputs, $ page_two_where);

echo ‘<form method = «post» action = «‘. $ this_page. ‘»>
<label for = «location» id = «location»> Как вам нравится делать покупки? </ label>
<select name = «location» />
<option value = «nothing» selected> Выберите свой фаворит </ option>
<option value = «ebay»> Онлайн — Ebay </ option>
<option value = «eretailer»> Онлайн-магазины </ option>
<option value = «adss»> Онлайн — Объявления </ option>
<option value = «store»> Физическое хранилище </ option>
</ Выберите>
«;

if ($ пол == «ничего») {
эхо
‘<label for = «category» id = «category»> Что вы чаще всего покупаете? </ label>
<select name = «category» />
<option value = «nothing» selected> Выберите свой фаворит </ option>
<option value = «ebay»> Одежда </ option>
<option value = «eretailer»> Обувь </ option>
<option value = «adss»> Ювелирные изделия </ option>
<option value = «adss»> Кухонное оборудование </ option>
<option value = «store»> Спортивное снаряжение </ option>
<option value = «adss»> Компьютеры — Настольные ПК </ option>
<option value = «adss»> Компьютеры — ноутбук </ option>
<option value = «adss»> Компьютеры — программное обеспечение </ option>
</ Выберите> ‘;
}
если ($ пол == 0) {
эхо
‘<label for = «category» id = «category»> Что вы чаще всего покупаете? </ label>
<select name = «category» />
<option value = «nothing» selected> Выберите свой фаворит </ option>
<option value = «store»> Спортивное снаряжение </ option>
<option value = «adss»> Компьютеры — Настольные ПК </ option>
<option value = «adss»> Компьютеры — ноутбук </ option>
<option value = «adss»> Компьютеры — программное обеспечение </ option>
</ Выберите> ‘;
}
если ($ пол == 1) {
эхо
‘<label for = «category» id = «category»> Что вы чаще всего покупаете? </ label>
<select name = «category» />
<option value = «nothing» selected> Выберите свой фаворит </ option>
<option value = «store»> Спортивное снаряжение </ option>
<option value = «adss»> Компьютеры — Настольные ПК </ option>
<option value = «adss»> Компьютеры — ноутбук </ option>
<option value = «adss»> Компьютеры — программное обеспечение </ option>
</ Выберите> ‘;
}

эхо
<input type = «hidden» value = «3» name = «page» />
<input type = «hidden» value = «‘. $ form_id.'» name = «form_id» />

<input type = «submit» />
</ Форма> ‘;

}; // Конечная страница 3 формы

[/исходный код]

Как можно надеяться, вы можете видеть из утверждений IF Надеюсь, ваше воображение начинает разгораться, и вы видите, насколько мощной может быть эта маленькая система для вас!

В этот момент мы также можем захотеть проверить, есть ли у нас все данные, которые мы ожидаем, в таблицах нашей базы данных. Итак, позвольте мне показать вам быстрый способ проверить.

Шаг 3: Проверьте свою базу данных

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

Мы будем использовать $wpdb->select Прямо под нашим закрывающим тегом формы, но над комментарием «КОНЕЦ страницы 3 формы» добавьте следующее:

[sourcecode language = ”php”]

// Давайте проверим наши данные
$ data_check = $ wpdb-> get_row («SELECT * FROM shopping_preferences WHERE id = ‘$ form_id'»);

эхо
<p> id: ‘. $ data_check-> id. </ P>
<p> first_name: ‘. $ data_check-> first_name. </ P>
<p> last_name: ‘. $ data_check-> last_name. </ P>
<p> электронная почта: ‘. $ data_check-> email. </ P>
<p> телефон: ‘. $ data_check-> phone. </ P>
<p> почтовый индекс: ‘. $ data_check-> zip_code. </ P>
<p> пол: ‘. $ data_check-> пол. </ P>
<p> возраст: ‘. $ data_check-> age. </ P>
<p> образование: ‘. $ data_check-> Education. </ P>
<p> доход: ‘. $ data_check-> доход. </ P>
<p> местоположение: ‘. $ data_check-> location. </ P>
<p> категории: ‘. $ data_check-> категории. </ P>
<p> страница: ‘. $ data_check-> page. </ P>
<p> отметка времени: ‘. $ data_check-> timestamp. ‘</ Р>’;

[/исходный код]

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

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