Это третья часть в серии о создании многостраничной формы в WordPress , дополненной собственной таблицей базы данных. Я настоятельно рекомендую вам ознакомиться с частями первой и второй, если вы еще этого не сделали, и не более того, чтобы ознакомиться с нашей методологией и форматом.
В первой части серии мы создали шорткод, сделали пост / страницу для нашей формы и создали основные функции, которые мы используем для этого процесса. Во второй части мы создали таблицу базы данных, вставили входные данные с первой страницы нашей формы и обработали данные со второй страницы. В третьей части мы собираемся обновить (а не вставить) данные в строку, которую мы начали для этой формы, и показать, как мы можем создать дополнительную версию формы на основе предыдущих записей данных.
Шаг 1: Получить данные POST со второй страницы формы
Если у вас его еще нет, перейдите ко второй статье этой серии и получите код в конце статьи. Мы продолжим развивать это с этого момента.
Начиная с вашего комментария «Стартовая страница 3 формы», мы собираемся удалить операторы echo, которые отображают входные данные формы нашей страницы 2, и заменить его на наш оператор UPDATE
Мы не хотим снова использовать $wpdb->insert
Вместо этого мы используем $wpdb->update
$form_id
ELSEIF
[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. ‘</ Р>’;
[/исходный код]
Мы перечисляем всю информацию из нашей таблицы в этом примере. Обратите внимание, что местоположение и категории будут пустыми, потому что мы еще не отправили форму для третьей страницы. Помните, что я не ограничивал запрос, поэтому, если вы выполняли много тестов, вы увидите все результаты.
В следующей статье этой серии мы создадим страницу «Спасибо!» И обновим базу данных последней информацией. Я также покажу вам, как сделать запрос к базе данных и создать отчет для собственного использования, чтобы увидеть результаты анкетирования.