dzimmo

Untitled

May 3rd, 2018
98
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. ?>
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×