Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- //Создаем массив $formItemsList куда помещаем значения name будущих элементов <input> type=hidden
- $formItemsList =
- ["firstName",
- "patronymic",
- "lastName",
- "citizenship",
- "city",
- "gender",
- "age",
- "marriage",
- "children",
- "education",
- "languages",
- "message"];
- //Объявляем функцию которая принимает как аргумент массив и в цикле создает элементы input type="hidden"
- function inputConstructor($array){
- foreach ($array as $value) {
- echo "<input type='hidden' name='" . $value . "' value='" . $_POST[$value] . "' />";
- }
- }
- // В условии if функцией isset проверяем пришло ли значение step методом POST из формы,
- //и находится ли это значение между 1 и 3
- if ( isset( $_POST["step"] ) and $_POST["step"] >= 1 and $_POST["step"]<= 3 ) {
- //Если условие выполняется то вызываем встроенную функцию call_user_func в которую в
- //качестве аргумента передаем результат конкатенации строки "processStep" и значения
- //которое пришло методом POST из формы и записалось в соответствующий
- //глобальный массив $_POST и таким образом вызываем соответствующие шаги
- call_user_func( "processStep" . (int)$_POST["step"] );
- } else {
- //Если условие не выполняется то запускается функция displayStep1
- displayStep1();
- }
- //Объявляем функцию processStep1 которая возвращает результат вызова
- //функции displayStep2
- function processStep1() {
- displayStep2();
- }
- //Объявляем функцию processStep2
- function processStep2() {
- // Если в глобальном массиве $_POST определено значение соответствующее ключу
- // submitButton и оно равно по значению строке "Back-to-step1", то есть пользователь нажал
- //эту кнопку. В этом случае запускается функция displayStep1 которая показывает первый шаг
- if ( isset( $_POST["submitButton"] ) and $_POST["submitButton"] =="Back-to-step1" ) {
- displayStep1();
- } else {
- // В ином случае запускается функция displayStep3, для перехода к 3 шагу
- displayStep3();
- }
- }
- //Объявляем функцию processStep3
- function processStep3() {
- if ( isset( $_POST["submitButton"] ) and $_POST["submitButton"] =="Back-to-step2" ) {
- //Если пользователь нажал Back-to-step2 вызываем функцию displayStep2
- displayStep2();
- } else {
- // В ином случае запускается функция displayThanks, задача которой поблагодарить пользователя
- //за предоставленную информацию
- displayThanks();
- }
- }
- //Объявляем функцию displayStep1 которая показывает первый шаг
- function displayStep1() {
- ?>
- <h2>ШАГ 1 из 3</h2>
- <form method="post">
- <input type="hidden" name="step" value="1" />
- <?php inputConstructor($GLOBALS["formItemsList"]); ?>
- <label for="firstName">Ведите имя</label>
- <input type="text" name="firstName" id="firstName" value="<?= $_POST[firstName]; ?>" /><br>
- <label for="patronymic">Ведите отчество</label>
- <input type="text" name="patronymic" id="patronymic" value="<?= $_POST[patronymic]; ?>" > <br>
- <label for="lastName">Введите фамилию</label>
- <input type="text" name="lastName" id="lastName" value="<?= $_POST[lastName]; ?>" > <br>
- <label for="citizenship">Какое у вас гражданство</label>
- <input type="text" name="citizenship" id="citizenship" value="<?= $_POST[citizenship]; ?>" > <br>
- <label for="city">В каком городе проживаете</label>
- <input type="text" name="city" id="city" value="<?= $_POST[city]; ?>" > <br>
- <input type="submit" name="submitButton" id="nextButton" value="Next" />
- <pre> <?= print_r($_POST); ?> </pre>
- </form>
- <?php
- }
- //Объявляем функцию displayStep2 которая показывает второй шаг
- function displayStep2() {
- ?>
- <h2>ШАГ 2 из 3</h2>
- <form method="post">
- <input type="hidden" name="step" value="2" />
- <?php inputConstructor($GLOBALS["formItemsList"]); ?>
- <label>Ваш пол:</label><br>
- <label for="genderMale">мужской</label>
- <input type="radio" name="gender" id="genderMale" value="M" /><br>
- <label for="genderFemale">женский</label>
- <input type="radio" name="gender" id="genderFemale" value="F" /><br>
- <label for="age">Введите ваш возраст</label>
- <input type="text" name="age" id="age" value="<?= $_POST[age]; ?>" > <br>
- <label>Состоите ли вы в браке:</label><br>
- <label for="NOmarriage">не сосотою</label>
- <input type="radio" name="marriage" id="NOmarriage" value="NO" /><br>
- <label for="YESmarriage">состою</label>
- <input type="radio" name="marriage" id="YESmarriage" value="YES" /><br>
- <label>Есть ли у вас дети</label><br>
- <label for="NOchildren">нет</label>
- <input type="radio" name="children" id="NOchildren" value="NO" /><br>
- <label for="YESchildren">есть</label>
- <input type="radio" name="children" id="YESchildren" value="YES" /><br>
- <input type="submit" name="submitButton" id="backButton" value="Back-to-step1"/>
- <input type="submit" name="submitButton" id="nextButton" value="Next-to-step3" />
- </form>
- <pre> <?= print_r($_POST); //Смотрим что получилось в массиве $_POST
- ?> </pre>
- <?php
- }
- //Объявляем функцию displayStep3 которая показывает третий шаг
- function displayStep3() {
- ?>
- <h2>Шаг 3 из 3</h2>
- <form method="post">
- <input type="hidden" name="step" value="3" />
- <?php inputConstructor($GLOBALS["formItemsList"]); ?>
- <label>Ваше образование:</label><br>
- <label for="primaryEdu">Начальное</label>
- <input type="radio" name="education" id="primaryEdu" value="primary" /><br>
- <label for="secondaryEdu">Среднее</label>
- <input type="radio" name="education" id="secondaryEdu" value="secondary" /><br>
- <label for="higherEdu">Высшее</label>
- <input type="radio" name="education" id="higherEdu" value="higher" /><br>
- <label>Какие иностранные языки вы знаете:</label><br>
- <input type="text" name="languages" id="languages" value="<?= $_POST[languages]; ?>" /><br>
- <label>Напишите ваши пожелания:</label><br>
- <input type="textarea" name="message" id="message" value="<?= $_POST[message]; ?>" /><br>
- <input type="submit" name="submitButton" id="backButton" value="Back-to-step2"/>
- <input type="submit" name="submitButton" id="nextButton" value="Next-to-end" />
- </form>
- <pre> <?= print_r($_POST); //Смотрим что получилось в массиве $_POST ?> </pre>
- <?php
- }
- //Объявляем функцию displayThanks которая показывает благодарность за заполненную форму
- function displayThanks() {
- ?>
- <h1>Спасибо!</h1>
- <p>Благодарим за уделенное время</p>
- <pre> <?= print_r($_POST); ?> </pre>
- <?php
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement