פונקצית PHP ליצירת טפסי HTML

מחבר:
בתאריך:

אם נמאס לכם לכתוב את טפסי ההטמ"ל בעצמכם, מדריך זה מציג פונקציה פשוטה שמייצרת טופס ממערך רגיל.

הפונקציה צריכה לקבל את שיטת המשלוח (post, get), ואת ה-url אליו נשלח הטופס, ובנוסף מערך שבו כל פריט הוא שדה נפרד בטופס. הפריטים הם עצמם מערכים הכוללים את כותרת השדה, סוג השדה (text, tel וכיו"ב), ערך (value), ערך ממלא מקום (placeholder), אורך מקסימלי של תווים שניתן להזין בו את השדה (maxlength) והאם השדה נחוץ (required).

<?php
function form_builder($method = 'post', $action = '', array $inputs){
 
  // Form header.
  $build_form = "<form action='{$action}' method= '{$method}'>";
 
  foreach($inputs AS $input => $attributes){
    // Each feild is wrapped in a paragraph.
    $build_form .= "<p>";
  
    // Feild label. Not for submit
    if($input !== 'submit'){
      $build_form .= "<label>{$input}</label>";
    }
  
    // Textarea is handled differently.
    $is_textarea = ($attributes[0] !== 'textarea')? FALSE : TRUE;
  
    $build_form .= ($is_textarea)? "<textarea " : "<input ";
  
    if(!$is_textarea){
      // Non textarea input feilds.
      $build_form .= "type = '{$attributes[0]}' ";
      $build_form .= "name = '{$attributes[1]}' ";
      $build_form .= "value = '{$attributes[2]}' ";
      $build_form .= "placeholder = '{$attributes[3]}' ";
      $build_form .= "maxlength = '{$attributes[4]}' ";
      if($attributes[5] === 'yes'){
        $build_form .= "required ";
      }
    } else { // special case: textarea
      $build_form .= "cols= '{$attributes[4]}' ";
      $build_form .= "placeholder = '{$attributes[3]}'>";
    }
  
    $build_form .= ($is_textarea)? "</textarea>" : ">";
  
    $build_form .= "</p>";
  }
  $build_form .= "</form>";

  return $build_form;
}
?>

לצורך הדוגמה, ניתן להזין את הקוד הבא לתוך הפונקציה.

<?php
// מערך השדות
// כל שורה יוצרת שדה אחר
// label => type, name, value, placeholder, max size, required
$inputs = Array(
  'שם מלא' => array('text', 'fname', '', 'שם מלא', '60', 'yes'),
  'מייל' => array('email', 'femail', '', 'מייל', '60', 'yes'),
  'טלפון' => array('tel', 'ftel', '', 'טלפון', '12', 'yes'),
  'רוצה לקבל מייל' => array('checkbox', 'freceive', '', '', '', 'no'),
  'הערות נוספות' => array('textarea', 'fnotes', '', '', '60', 'no'),
  'submit' => array('submit', 'fsubmit', 'שלח', '', '', '', '')
);

$method = 'post';// HTTP Method
$action = 'index.php';// processing script

// Call the function
echo form_builder($method, $action, $inputs);
?>

 

לכל מדריכי ה-PHP

 

 

אהבתם? לא אהבתם? דרגו!

0 הצבעות, ממוצע 0 מתוך 5 כוכבים

 

הוסף תגובה חדשה

 

= 8 + 5