Happy Codings - Programming Code Examples
Html Css Web Design Sample Codes CPlusPlus Programming Sample Codes JavaScript Programming Sample Codes C Programming Sample Codes CSharp Programming Sample Codes Java Programming Sample Codes Php Programming Sample Codes Visual Basic Programming Sample Codes


Php Programming Code Examples

Php > Php Classes Code Examples

Form is a utility class for generating html forms. It provides form initialization

Form is a utility class for generating html forms. It provides form initialization and regex based data validation (both server and client side) with a convenient interface <?php // This function is needed because unset is current (3.0b6) buggy // when used for associative arrays. function myunset($a,$key) { reset($a); while ($i = current($a)) { if ($key != ($k = key($a))) $t[$k] = $i; next($a); } $a=$t; } class form { var $elements; var $hidden; function load_defaults($deflist= "") { if ($deflist) { reset($deflist); $el = $this->elements[current($deflist)]; } else { reset($this->elements); $el = current($this->elements); } while ($el) { if (!($eltype = $el[ "type"])) { $el = current($el); $eltype = $el[ "type"]; } $elname = $el[ "name"]; global $$elname; $elval = $$elname; switch ($eltype) { case "text": case "pass": case "textarea": $this->elements[$elname][ "value"] = $elval; break; case "checkbox": if (isset($elval)) $this->elements[$elname][ "checked"] = "yes"; else $this->elements[$elname][ "checked"] = "no"; break; case "radio": reset ($this->elements[$elname]); while ($temp = current($this->elements[$elname])) { $temp[ "checked"] = "no"; next($this->elements[$elname]); } $this->elements[$elname][$elval][ "checked"] = "yes"; break; case "select": case "select multiple": $this->elements[$elname][ "value"] = $elval; $elops = $this->elements[$elname][ "options"]; if (is_array($elops)) { reset($elops); $elops = current($elops); if (isset($this->elements[$elname][ "valid_e"]) && !((is_array($elops) && (($elops[ "label"] == $elval) || ($elops[ "value"] == $elval))) || ($elops == $elval))) { myunset(&$this->elements[$elname][ "options"],0); unset($this->elements[$elname][ "valid_e"]); } } break; } if ($deflist) { next($deflist); $el = $this->elements[current($deflist)]; } else { next($this->elements); $el = current($this->elements); } } } function start($jsv_name= "",$method= "",$action= "",$target= "") { global $PHP_SELF; if (!$method) $method = "POST"; if (!$action) $action = $PHP_SELF; if (!$target) $target = "_self"; if ($jsv_name) { echo "<script language=\"javascript\">\n<!--\n"; echo "function ${jsv_name}_Validator(f) {\n"; reset($this->elements); while ($el = current($this->elements)) { if (!$el[ "type"]) $el = current($el); $elname = $el[ "name"]; $eltype = $el[ "type"]; switch ($eltype) { case "text": case "password": $el_e = $el[ "length_e"]; if ($elmin = $el[ "min_l"]) { echo "if (f.${elname}.value.length < $elmin) {\n"; echo "alert(\"$el_e\");\n"; echo "f.${elname}.focus();\n"; echo "return(false);\n}\n"; } if ($el_e = $el[ "valid_e"]) { $el_re = $el[ "valid_regex"]; echo ( "if (window.RegExp) {\n"); echo "var reg = new RegExp(\"$el_re\");\n"; echo "if (!reg.test(f.${elname}.value)) {\n"; echo "alert(\"$el_e\");\n"; echo "f.${elname}.focus();\n"; echo "return(false);\n"; echo "}\n}\n"; } break; case "radio": if ($el_e = $el[ "valid_e"]) { echo "var l = f.${elname}.length;\n"; echo "var radioOK = false;\n"; echo "for (i=0; i<l; i++)\n"; echo "if (f.${elname}[i].checked) {\n"; echo "radioOK = true;\n"; echo "break;\n"; echo "}\n"; echo "if (!radioOK) {\n"; echo "alert(\"$el_e\");\n"; echo "return(false);\n"; echo "}\n"; } break; case "select": if ($el_e = $el[ "valid_e"]) { echo "if (f.${elname}.selectedIndex == 0) {\n"; echo "alert(\"$el_e\");\n"; echo "f.${elname}.focus();\n"; echo "return(false);\n"; echo "}\n"; } break; } next($this->elements); } echo "}\n//-->\n</script>\n"; echo "<form method=\"$method\" "; echo "action=\"$action\" "; echo "target=\"$target\" "; echo "onsubmit=\"return ${jsv_name}_Validator(this)\">\n"; } else echo "<form method=\"$method\" action=\"$action\" target=\"$target\">"; } function finish() { if ($this->hidden) { reset($this->hidden); while ($elname = current($this->hidden)) { $elval = $this->elements[$elname][ "value"]; echo "<input type=\"hidden\" name=\"$elname\" value=\"$elval\">\n"; next($this->hidden); } } echo "</form>\n"; } function validate($default,$vallist= "") { if ($vallist) { reset($vallist); $el = $this->elements[current($vallist)]; } else { reset($this->elements); $el = current($this->elements); } while ($el) { if (!$el[ "type"]) $el = current($el); $elname = $el[ "name"]; $eltype = $el[ "type"]; global $$elname; $elval = $$elname; switch ($eltype) { case "text": case "password": $el_e = $el[ "length_e"]; if (($elmin = $el[ "min_l"]) && strlen($elval) < $elmin) return $el_e; $elreg = $el[ "valid_regex"]; if (($el_e = $el[ "valid_e"]) && !ereg($elreg,$elval)) return $el_e; break; case "radio": if (($el_e = $el[ "valid_e"]) && !$elval) return $el_e; break; case "select": if ($el_e = $el[ "valid_e"]) { $elops = $el[ "options"]; reset($elops); $elops = current($elops); if (is_array($elops)) $elops = $elops[ "value"]; if ($elval == $elops) return $el_e; } break; } if ($vallist) { next($vallist); $el = $this->elements[current($vallist)]; } else { next($this->elements); $el = current($this->elements); } } return($default); } function add_element($el) { if (($el[ "type"] != "radio") && ($el[ "type"] != "submit")) $this->elements[$el[ "name"]] = $el; else $this->elements[$el[ "name"]][$el[ "value"]] = $el; if ($el[ "type"] == "hidden") $this->hidden[] = $el[ "name"]; } function show_element($name,$value= "") { if ($value) $el = $this->elements[$name][$value]; else $el = $this->elements[$name]; $eltype = $el[ "type"]; $elname = $el[ "name"]; $elvalue = $el[ "value"]; $elextrahtml = $el[ "extra_html"]; switch ($eltype) { case "text": case "password": echo "<input type=\"$eltype\" name=\"$elname\" value=\"$elvalue\""; if ($el[ "max_l"]) { $elmaxl = $el[ "max_l"]; echo " maxlength=\"$elmaxl\""; } if ($elsize = $el[ "size"]) echo " size=\"$elsize\""; echo " $elextrahtml>\n"; break; case "image": echo "<input type=\"$eltype\" name=\"$elname\" value=\"$elvalue\""; $elsrc = $el[ "src"]; echo "src=\"$elsrc\" $elextrahtml>\n"; break; case "checkbox": case "radio": if (($elchk = $el[ "checked"]) && $elchk != "no") $elextrahtml .= " checked"; case "hidden": case "submit": case "reset": echo "<input type=\"$eltype\" name=\"$elname\" value=\"$elvalue\""; echo " $elextrahtml>\n"; break; case "textarea": $elrows = $el[ "rows"]; $elcols = $el[ "cols"]; $elwrap = $el[ "wrap"]; echo "<textarea name=\"$elname\" "; echo "rows=\"$elrows\" cols=\"$elcols\" wrap=\"$elwrap\""; echo " $elextrahtml>\n"; echo "$elvalue"; echo "</textarea>"; break; case "select": case "select multiple": $elsize = $el[ "size"]; $elops = $el[ "options"]; echo "<$eltype name=\"$elname"; if ($eltype == "select multiple") echo "[]\""; else echo "\""; if ($elsize) echo " size=\"$elsize\""; echo " $elextrahtml>\n"; if (is_array($elops)) while ($curop = current($elops)) { echo "<option"; if (is_array($curop)) { $curval = $curop[ "value"]; $curop = $curop[ "label"]; echo " value=\"$curval\""; } if (is_array($elvalue)) { reset($elvalue); while ($temp = current($elvalue)) { if ($temp == $curval || $temp == $curop) echo " selected"; next($elvalue); } } elseif ((isset($curval) && ($elvalue == $curval)) || strval($elvalue) == strval($curop)) echo " selected"; echo ">$curop</option>\n"; next($elops); } echo "</select>\n"; break; } } } ?>