dzimmo

PHP-1_task-3_complete

May 19th, 2018
129
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.     <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7.     <title>PHP 1. Задание 3</title>
  8.     <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" integrity="sha384-WskhaSGFgHYWDcbwN70/dfYBj47jz9qbsMId/iRN3ewGhXQFZCSftd1LZCfmhktB" crossorigin="anonymous">
  9. </head>
  10. <body>
  11.    
  12.     <?php
  13.     $elements = [
  14.  [
  15.    "element" => "input",
  16.    "htmltype" => "text",
  17.    "name" => "firstname",
  18.    "type" => "string",
  19.    "placeholder" => "Введите имя"
  20.  ],
  21.  [
  22.    "element" => "input",
  23.    "htmltype" => "text",
  24.    "name" => "age",
  25.    "type" => "integer",
  26.    "placeholder" => "Введите возраст"
  27.  ],
  28.  [
  29.    "element" => "input",
  30.    "htmltype" => "radio",
  31.    "name" => "gender",
  32.    "type" => "boolean",
  33.    "value" => "male",
  34.    "label" => "мужской"
  35.  ],
  36.  [
  37.    "element" => "input",
  38.    "htmltype" => "radio",
  39.    "name" => "gender",
  40.    "type" => "boolean",
  41.    "value" => "female",
  42.    "label" => "женский"
  43.  ],
  44.  [
  45.    "element" => "input",
  46.    "htmltype" => "submit",
  47.    "value" => "Отправить"
  48.  ],
  49. ];
  50. // Cоздаем функцию которая выводит атрибуты тэгов и их значения
  51. function atr($attribute, $attrValue)
  52. { echo " $attribute = '$attrValue' " ;};
  53.  
  54. //Создаем функцию, которая принимает массив с различными свойствами HTML-элемента , (включая его название
  55. //и атрибуты) и создает html-разметку этого тэга :
  56. function constructorForElement(array $OneHtmlElementInArray){
  57.  
  58. foreach ($OneHtmlElementInArray as $arrKey => $arrValue) {
  59.         $endTag = "/>";
  60.         switch ($arrKey) {
  61.         case "element": echo "<$arrValue ";
  62.             break;
  63.         case "htmltype" : $htmltype = $arrValue;
  64.             echo " type = $arrValue ";
  65.             break;
  66.         case "label" : echo " /><label for='$id'>  $arrValue ";
  67.             $endTag = "</$arrKey>";
  68.             break;
  69.         case "type" : $type = $arrValue;
  70.             break;
  71.         case "value" : $id = $arrValue;
  72.             atr($arrKey, $arrValue);
  73.             if ($htmltype == "radio"){
  74.             atr($arrKey, $arrValue);
  75.             echo " id='$id' ";
  76.              }
  77.             break;
  78.         case "name" : if($htmltype == "text"){
  79.             atr($arrKey, $arrValue);
  80.             echo "value='$_POST[$arrValue]' ";
  81.             $name = $arrValue;
  82.             } else {
  83.             atr($arrKey, $arrValue);
  84.             }
  85.             break;
  86.         default: atr($arrKey, $arrValue);
  87.             break;
  88.         }
  89. }
  90. echo $endTag;
  91. }
  92. //Создаем функцию htmlConstructor которая принимает многомерный массив HTML элементов и с помощью функции
  93. //constructorForElement создает разметку на основании многомерного массива
  94. function htmlConstructor(array $htmlElementsArray) {
  95.     foreach($htmlElementsArray as $htmlElement) {
  96.     echo "<div class = 'row'>";
  97. constructorForElement($htmlElement);
  98.     echo "</div>";
  99.     }
  100. }
  101.     ?>
  102.     <div class="container">
  103.         <form method = "post">
  104.             <?php htmlConstructor($elements); ?>
  105.         </form>
  106.     </div>
  107. </body>
  108. </html>
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.

×