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