Advertisement
dzimmo

Untitled

May 3rd, 2018
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 7.78 KB | None | 0 0
  1. <?php
  2. //Создаем массив $formItemsList куда помещаем значения name будущих элементов <input> type=hidden
  3. $formItemsList =
  4. ["firstName",
  5. "patronymic",
  6. "lastName",
  7. "citizenship",
  8. "city",
  9. "gender",
  10. "age",
  11. "marriage",
  12. "children",
  13. "education",
  14. "languages",
  15. "message"];
  16.  
  17. //Объявляем функцию которая принимает как аргумент массив и в цикле создает элементы input type="hidden"
  18. function inputConstructor($array){
  19.     foreach ($array as $value) {
  20.         echo "<input type='hidden' name='" . $value . "' value='" . $_POST[$value] . "' />";
  21.     }
  22. }
  23.  
  24. // В условии if функцией isset проверяем пришло ли значение step методом POST из формы,
  25. //и находится ли это значение между 1 и 3
  26. if ( isset( $_POST["step"] ) and $_POST["step"] >= 1 and $_POST["step"]<= 3 ) {
  27.     //Если условие выполняется то вызываем встроенную функцию call_user_func в которую в
  28.     //качестве аргумента передаем результат конкатенации строки "processStep" и значения
  29.     //которое пришло методом POST из формы и записалось в соответствующий
  30.     //глобальный массив $_POST и таким образом вызываем соответствующие шаги
  31.     call_user_func( "processStep" . (int)$_POST["step"] );
  32. } else {
  33. //Если условие не выполняется то запускается функция displayStep1
  34.     displayStep1();
  35. }
  36.  
  37. //Объявляем функцию processStep1 которая возвращает результат вызова
  38. //функции displayStep2
  39. function processStep1() {
  40.     displayStep2();
  41. }
  42. //Объявляем функцию processStep2
  43. function processStep2() {
  44.     // Если в глобальном массиве $_POST определено значение соответствующее ключу  
  45.     // submitButton и оно равно по значению строке "Back-to-step1", то есть пользователь нажал
  46.     //эту кнопку. В этом случае запускается функция displayStep1 которая показывает первый шаг
  47.     if ( isset( $_POST["submitButton"] ) and $_POST["submitButton"] =="Back-to-step1" ) {
  48.     displayStep1();
  49.     } else {
  50.     // В ином случае запускается функция displayStep3, для перехода к 3 шагу
  51.     displayStep3();
  52.     }
  53. }
  54. //Объявляем функцию processStep3
  55. function processStep3() {
  56.     if ( isset( $_POST["submitButton"] ) and $_POST["submitButton"] =="Back-to-step2" ) {
  57.     //Если пользователь нажал Back-to-step2 вызываем функцию displayStep2
  58.     displayStep2();
  59.     } else {
  60.     // В ином случае запускается функция displayThanks, задача которой поблагодарить пользователя
  61.     //за предоставленную информацию
  62.     displayThanks();
  63.     }
  64. }
  65.  
  66.  
  67. //Объявляем функцию displayStep1 которая показывает первый шаг
  68. function displayStep1() {
  69. ?>
  70.     <h2>ШАГ 1 из 3</h2>
  71.     <form method="post">
  72.             <input type="hidden" name="step" value="1" />
  73.            
  74.             <?php  inputConstructor($GLOBALS["formItemsList"]); ?>
  75.            
  76.             <label for="firstName">Ведите имя</label>
  77.             <input type="text" name="firstName" id="firstName" value="<?= $_POST[firstName]; ?>" /><br>    
  78.             <label for="patronymic">Ведите отчество</label>
  79.             <input type="text" name="patronymic" id="patronymic" value="<?= $_POST[patronymic]; ?>" > <br>
  80.             <label for="lastName">Введите фамилию</label>
  81.             <input type="text" name="lastName" id="lastName" value="<?= $_POST[lastName]; ?>" > <br>
  82.             <label for="citizenship">Какое у вас гражданство</label>
  83.             <input type="text" name="citizenship" id="citizenship" value="<?= $_POST[citizenship]; ?>" > <br>
  84.             <label for="city">В каком городе проживаете</label>
  85.             <input type="text" name="city" id="city" value="<?= $_POST[city]; ?>" > <br>           
  86.            
  87.             <input type="submit" name="submitButton" id="nextButton" value="Next" />
  88.             <pre> <?= print_r($_POST); ?> </pre>
  89.     </form>
  90.     <?php
  91. }
  92. //Объявляем функцию displayStep2 которая показывает второй шаг
  93. function displayStep2() {
  94. ?>
  95.         <h2>ШАГ 2 из 3</h2>
  96.         <form method="post">
  97.             <input type="hidden" name="step" value="2" />
  98.            
  99.             <?php  inputConstructor($GLOBALS["formItemsList"]); ?>
  100.            
  101.             <label>Ваш пол:</label><br>
  102.             <label for="genderMale">мужской</label>
  103.             <input type="radio" name="gender" id="genderMale" value="M" /><br>
  104.             <label for="genderFemale">женский</label>
  105.             <input type="radio" name="gender" id="genderFemale" value="F" /><br>
  106.             <label for="age">Введите ваш возраст</label>
  107.             <input type="text" name="age" id="age" value="<?= $_POST[age]; ?>" > <br>
  108.             <label>Состоите ли вы в браке:</label><br>
  109.             <label for="NOmarriage">не сосотою</label>
  110.             <input type="radio" name="marriage" id="NOmarriage" value="NO" /><br>
  111.             <label for="YESmarriage">состою</label>
  112.             <input type="radio" name="marriage" id="YESmarriage" value="YES" /><br>
  113.             <label>Есть ли у вас дети</label><br>
  114.             <label for="NOchildren">нет</label>
  115.             <input type="radio" name="children" id="NOchildren" value="NO" /><br>
  116.             <label for="YESchildren">есть</label>
  117.             <input type="radio" name="children" id="YESchildren" value="YES" /><br>        
  118.            
  119.            
  120.             <input type="submit" name="submitButton" id="backButton" value="Back-to-step1"/>
  121.             <input type="submit" name="submitButton" id="nextButton" value="Next-to-step3" />
  122.         </form>
  123.         <pre> <?= print_r($_POST); //Смотрим что получилось в массиве $_POST  
  124.         ?> </pre>
  125.         <?php
  126. }
  127. //Объявляем функцию displayStep3 которая показывает третий шаг
  128. function displayStep3() {
  129. ?>
  130.         <h2>Шаг 3 из 3</h2>
  131.         <form method="post">
  132.             <input type="hidden" name="step" value="3" />
  133.            
  134.             <?php  inputConstructor($GLOBALS["formItemsList"]); ?>
  135.                        
  136.             <label>Ваше образование:</label><br>
  137.             <label for="primaryEdu">Начальное</label>
  138.             <input type="radio" name="education" id="primaryEdu" value="primary" /><br>
  139.             <label for="secondaryEdu">Среднее</label>
  140.             <input type="radio" name="education" id="secondaryEdu" value="secondary" /><br>
  141.             <label for="higherEdu">Высшее</label>
  142.             <input type="radio" name="education" id="higherEdu" value="higher" /><br>
  143.             <label>Какие иностранные языки вы знаете:</label><br>
  144.             <input type="text" name="languages" id="languages" value="<?= $_POST[languages]; ?>" /><br>
  145.             <label>Напишите ваши пожелания:</label><br>
  146.             <input type="textarea" name="message" id="message" value="<?= $_POST[message]; ?>" /><br>
  147.            
  148.             <input type="submit" name="submitButton" id="backButton" value="Back-to-step2"/>
  149.             <input type="submit" name="submitButton" id="nextButton" value="Next-to-end" />
  150.         </form>
  151.         <pre> <?= print_r($_POST); //Смотрим что получилось в массиве $_POST  ?> </pre>
  152.         <?php
  153. }
  154.  
  155. //Объявляем функцию displayThanks которая показывает благодарность за заполненную форму
  156. function displayThanks() {
  157. ?>
  158.             <h1>Спасибо!</h1>
  159.             <p>Благодарим за уделенное время</p>
  160.             <pre> <?= print_r($_POST); ?> </pre>
  161.             <?php
  162. }
  163. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement