form : add the prefix to allow the form to be subitted in array

git-svn-id: https://svn.fournier38.fr/svn/ProgSVN/trunk@2165 bf3deb0d-5f1a-0410-827f-c0cc1f45334c
This commit is contained in:
2015-05-12 08:09:28 +00:00
parent 2b92b68470
commit 0b3d621317

163
form.php
View File

@@ -59,6 +59,8 @@ class form
to check the defaults per example
- [mandatory] : boolean to add a red star at end of label
- [hidden] : hide the field (add a style='display:hidden' to the field)
- [prefix] : the prefix added to the name (in XXX/YYY/ZZZ form).
Will form an array to the result
@param array $fields The fields to be displayed
*/
@@ -171,7 +173,6 @@ die ("FORM/VERIFY : UNUSED and dirty\n");
public function printHTML ($method = 'post', $values = NULL,
$errors = array())
{
// TODO : textarea, file
$this->method = strtolower ($method);
$res = "";
$res = "<form action='#' method='$method'";
@@ -205,8 +206,10 @@ die ("FORM/VERIFY : UNUSED and dirty\n");
$res .= " has-".$errors[$field->name][0];
$res .= "'>\n";
$res .= " <label class='col-sm-2 control-label' for='".
$this->formName."_".
htmlspecialchars ($field->name, ENT_QUOTES)."_0'";
$this->formName."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."_0'";
if (isset ($field->hidden) && $field->hidden !== FALSE)
$res .= " style='display:none'";
$res .= ">";
@@ -222,15 +225,21 @@ die ("FORM/VERIFY : UNUSED and dirty\n");
foreach ($field->titles as $key=>$val)
{
$res .= " <input type='hidden'";
$res .= " name='$this->formName"."[".
htmlspecialchars ($field->name, ENT_QUOTES)."][$key]'";
$res .= " name='$this->formName"."[";
if (isset ($field->prefix))
$res .= implode ("][", explode ("/", $field->prefix))."][";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."][$key]'";
$res .= " value='unset'";
$res .= "/>";
$res .= "<input type='checkbox'";
$res .= " name='$this->formName"."[".
htmlspecialchars ($field->name, ENT_QUOTES)."][$key]'";
$res .= " id='$this->formName"."_".
htmlspecialchars ($field->name, ENT_QUOTES)."_$key'";
$res .= " name='$this->formName"."[";
if (isset ($field->prefix))
$res .= implode ("][", explode ("/", $field->prefix))."][";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."][$key]'";
$res .= " id='$this->formName"."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."_$key'";
if (isset ($field->readonly) && $field->readonly !== FALSE)
$res .= " disabled='disabled'";
if (isset ($values[$field->name][$key]) &&
@@ -256,10 +265,14 @@ die ("FORM/VERIFY : UNUSED and dirty\n");
case "hidden":
// No $field->label, $field->multiple, $field->readonly, $field->hidden
$res .= "<input type='hidden'";
$res .= " name='$this->formName"."[".
htmlspecialchars ($field->name, ENT_QUOTES)."]'";
$res .= " id='$this->formName"."_".
htmlspecialchars ($field->name, ENT_QUOTES)."'";
$res .= " name='$this->formName"."[";
if (isset ($field->prefix))
$res .= implode ("][", explode ("/", $field->prefix))."][";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."]'";
$res .= " id='$this->formName"."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."'";
if (isset ($values[$field->name]))
$res .= " value='".htmlspecialchars ($values[$field->name])."'";
else
@@ -274,8 +287,10 @@ die ("FORM/VERIFY : UNUSED and dirty\n");
$res .= " has-".$errors[$field->name][0];
$res .= "'>\n";
$res .= " <label class='col-sm-2 control-label' for='".
$this->formName."_".
htmlspecialchars ($field->name, ENT_QUOTES)."'";
$this->formName."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."'";
if (isset ($field->hidden) && $field->hidden !== FALSE)
$res .= " style='display:none'";
$res .= ">";
@@ -287,10 +302,14 @@ die ("FORM/VERIFY : UNUSED and dirty\n");
$res .= "</label>\n";
$res .= " <div class='col-sm-10'>\n";
$res .= " <input type='password'";
$res .= " name='$this->formName"."[".
htmlspecialchars ($field->name, ENT_QUOTES)."]'";
$res .= " id='$this->formName"."_".
htmlspecialchars ($field->name, ENT_QUOTES)."'";
$res .= " name='$this->formName"."[";
if (isset ($field->prefix))
$res .= implode ("][", explode ("/", $field->prefix))."][";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."]'";
$res .= " id='$this->formName"."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."'";
if (isset ($values[$field->name]))
$res .= " value='".htmlspecialchars ($values[$field->name],
ENT_QUOTES)."'";
@@ -317,8 +336,10 @@ die ("FORM/VERIFY : UNUSED and dirty\n");
$res .= " has-".$errors[$field->name][0];
$res .= "'>\n";
$res .= " <label class='col-sm-2 control-label' for='".
$this->formName."_".
htmlspecialchars ($field->name, ENT_QUOTES)."_0'";
$this->formName."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."_0'";
if (isset ($field->hidden) && $field->hidden !== FALSE)
$res .= " style='display:none'";
$res .= ">";
@@ -332,18 +353,24 @@ die ("FORM/VERIFY : UNUSED and dirty\n");
if (is_string ($field->defaults))
$field->defaults = array ($field->defaults);
$res .= " <input type='hidden'";
$res .= " name='$this->formName"."[".
htmlspecialchars ($field->name, ENT_QUOTES)."]'";
$res .= " name='$this->formName"."[";
if (isset ($field->prefix))
$res .= implode ("][", explode ("/", $field->prefix))."][";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."]'";
$res .= " value='unset'";
$res .= "/>\n";
foreach ($field->titles as $key=>$val)
{
$res .= " <label class='radio'>";
$res .= "<input type='radio'";
$res .= " name='$this->formName"."[".
htmlspecialchars ($field->name, ENT_QUOTES)."]'";
$res .= " id='$this->formName"."_".
htmlspecialchars ($field->name, ENT_QUOTES)."_$key'";
$res .= " name='$this->formName"."[";
if (isset ($field->prefix))
$res .= implode ("][", explode ("/", $field->prefix))."][";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."]'";
$res .= " id='$this->formName"."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."_$key'";
$res .= " value='".htmlspecialchars ($val, ENT_QUOTES)."'";
if (isset ($field->readonly) && $field->readonly !== FALSE)
$res .= " readonly='readonly'";
@@ -375,8 +402,10 @@ die ("FORM/VERIFY : UNUSED and dirty\n");
$res .= " has-".$errors[$field->name][0];
$res .= "'>\n";
$res .= " <label class='col-sm-2 control-label' for='".
$this->formName."_".
htmlspecialchars ($field->name, ENT_QUOTES)."'";
$this->formName."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."'";
if (isset ($field->hidden) && $field->hidden !== FALSE)
$res .= " style='display:none'";
$res .= ">";
@@ -395,12 +424,20 @@ die ("FORM/VERIFY : UNUSED and dirty\n");
{
$res .= " <input type='hidden'";
if (isset ($field->multiple) && $field->multiple !== FALSE)
$res .= " name='$this->formName"."[".
htmlspecialchars ($field->name, ENT_QUOTES)."][".
{
$res .= " name='$this->formName"."[";
if (isset ($field->prefix))
$res .= implode ("][", explode ("/", $field->prefix))."][";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."][".
htmlspecialchars ($key, ENT_QUOTES)."]'";
}
else
$res .= " name='$this->formName"."[".
htmlspecialchars ($field->name, ENT_QUOTES)."]'";
{
$res .= " name='$this->formName"."[";
if (isset ($field->prefix))
$res .= implode ("][", explode ("/", $field->prefix))."][";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."]'";
}
$res .= " value='";
$res .= htmlspecialchars ($key, ENT_QUOTES)."'";
$res .= "/>\n";
@@ -408,13 +445,17 @@ die ("FORM/VERIFY : UNUSED and dirty\n");
}
$res .= " <select";
$res .= " name='$this->formName"."[".
htmlspecialchars ($field->name, ENT_QUOTES)."]";
$res .= " name='$this->formName"."[";
if (isset ($field->prefix))
$res .= implode ("][", explode ("/", $field->prefix))."][";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."]";
if (isset ($field->multiple) && $field->multiple !== FALSE)
$res .= "[]";
$res .= "'";
$res .= " id='$this->formName"."_".
htmlspecialchars ($field->name, ENT_QUOTES)."'";
$res .= " id='$this->formName"."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."'";
if (isset ($field->multiple) && $field->multiple !== FALSE)
$res .= " multiple='multiple'";
if (isset ($field->readonly) && $field->readonly !== FALSE)
@@ -459,10 +500,14 @@ die ("FORM/VERIFY : UNUSED and dirty\n");
$res .= "<div class='form-group'>\n";
$res .= " <div class='col-sm-12'>\n";
$res .= " <input type='submit'";
$res .= " name='$this->formName"."[".
htmlspecialchars ($field->name, ENT_QUOTES)."]'";
$res .= " id='$this->formName"."_".
htmlspecialchars ($field->name, ENT_QUOTES)."'";
$res .= " name='$this->formName"."[";
if (isset ($field->prefix))
$res .= implode ("][", explode ("/", $field->prefix))."][";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."]'";
$res .= " id='$this->formName"."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."'";
if (isset ($field->readonly) && $field->readonly !== FALSE)
$res .= " disabled='disabled'";
if (isset ($field->defaults))
@@ -485,8 +530,10 @@ die ("FORM/VERIFY : UNUSED and dirty\n");
$res .= " has-".$errors[$field->name][0];
$res .= "'>\n";
$res .= " <label class='col-sm-2 control-label' for='".
$this->formName."_".
htmlspecialchars ($field->name, ENT_QUOTES)."'";
$this->formName."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."'";
if (isset ($field->hidden) && $field->hidden !== FALSE)
$res .= " style='display:none'";
$res .= ">";
@@ -498,10 +545,14 @@ die ("FORM/VERIFY : UNUSED and dirty\n");
$res .= "</label>\n";
$res .= " <div class='col-sm-10'>\n";
$res .= " <textarea";
$res .= " name='$this->formName"."[".
htmlspecialchars ($field->name, ENT_QUOTES)."]'";
$res .= " id='$this->formName"."_".
htmlspecialchars ($field->name, ENT_QUOTES)."'";
$res .= " name='$this->formName"."[";
if (isset ($field->prefix))
$res .= implode ("][", explode ("/", $field->prefix))."][";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."]'";
$res .= " id='$this->formName"."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."'";
if (isset ($field->readonly) && $field->readonly !== FALSE)
$res .= " readonly='readonly'";
$res .= " class='form-control'";
@@ -527,8 +578,10 @@ die ("FORM/VERIFY : UNUSED and dirty\n");
$res .= " has-".$errors[$field->name][0];
$res .= "'>\n";
$res .= " <label class='col-sm-2 control-label' for='".
$this->formName."_".
htmlspecialchars ($field->name, ENT_QUOTES)."'";
$this->formName."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."'";
if (isset ($field->hidden) && $field->hidden !== FALSE)
$res .= " style='display:none'";
$res .= ">";
@@ -540,10 +593,14 @@ die ("FORM/VERIFY : UNUSED and dirty\n");
$res .= "</label>\n";
$res .= " <div class='col-sm-10'>\n";
$res .= " <input type='text'";
$res .= " name='$this->formName"."[".
htmlspecialchars ($field->name, ENT_QUOTES)."]'";
$res .= " id='$this->formName"."_".
htmlspecialchars ($field->name, ENT_QUOTES)."'";
$res .= " name='$this->formName"."[";
if (isset ($field->prefix))
$res .= implode ("][", explode ("/", $field->prefix))."][";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."]'";
$res .= " id='$this->formName"."_";
if (isset ($field->prefix))
$res .= preg_replace ("#[/ ]#", "_", $field->prefix)."_";
$res .= htmlspecialchars ($field->name, ENT_QUOTES)."'";
if (isset ($values[$field->name]))
$res .= " value='".htmlspecialchars ($values[$field->name],
ENT_QUOTES)."'";