Kleiner Off Topic Beitrag.
Habe letzte Woche eine PHP Klasse geschreiben mit der man die lästige Formular Checkung einfach und schnell lösen kann.
Verwendet wird sie einfach so.
Code: Alles auswählen
// Start Klasses
$check= new CheckForm;
// HTML Form Name
$check->FormName = 'myform';
// Add Form Check for Field stunden check ob befüllt
$check->addField('stunden','Bitte geben Sie die Stunde ein','filled');
// Add Form Check for Field stunden check ob zahl
$check->addField('stunden','Stunde muss aus Zahlen bestehen','number');
// Add Form Check for Field stunden check ob String Länge = 2
$check->addField('stunden','Stunde muss aus 2 Zahlen bestehen','len',2,2);
// Add Form Check for Field stunden check ob zwischen 0 und 24
$check->addField('stunden','Bitte geben Sie eine gültige Stunde ein','minmax',0,24);
// Add Form Check for Field email check ob valid email
$check->addField('email','Bitte geben Sie eine gültige Email Adresse ein','email');
Code: Alles auswählen
print $check->getScript();
Code: Alles auswählen
onSubmit="return checkForm();"
Fertig und ihr habt ein schönes Formular wo die Felder gecheckt werden.
Hier der Code der Klasse.
Code: Alles auswählen
<?php
class CheckForm {
var $FormName;
var $FunctionName = 'checkForm';
var $Values;
function addField($name,$error,$check='filled',$checkValue1=0,$checkValue2=0){
$c = count($this->Values)+1;
$this->Values[$c][name] = $name;
$this->Values[$c][error] = $error;
$this->Values[$c][check] = $check;
$this->Values[$c][checkValue1] = $checkValue1;
$this->Values[$c][checkValue2] = $checkValue2;
$c++;
}
function clearFields(){
$this->fields = '';
}
function getScript(){
$script = "<script>\n";
$script.= $this->email();
$script.= $this->filled();
$script.= $this->number();
$script.= $this->len();
$script.= $this->minmax();
$script.= "function ". $this->FunctionName ."(){\n";
if(is_array($this->Values)){
foreach($this->Values as $var){
$script.= "if(!".$var[check]."(document.".$this->FormName.".".$var[name].".value,".$var[checkValue1].",".$var[checkValue2].")) {\n";
$script.= "alert('$var[error]');\n";
$script.= "document.".$this->FormName.".".$var[name].".focus();\n";
$script.= "return false;\n";
$script.= "}\n";
}
}
$script.= "return true;\n";
$script.= "}\n";
$script.= "</script>\n";
return $script;
}
function email(){
$script = '
function email(email,min,max){
var splitted = email.match("^(.+)@(.+)$");
if(splitted == null) return false;
if(splitted[1] != null )
{
var regexp_user=/^\"?[\w-_\.]*\"?$/;
if(splitted[1].match(regexp_user) == null) return false;
}
if(splitted[2] != null)
{
var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
if(splitted[2].match(regexp_domain) == null)
{
var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
if(splitted[2].match(regexp_ip) == null) return false;
}// if
return true;
}
return false;
}
';
return $script;
}
function filled(){
$script = '
function filled(filled,min,max){
if(filled!=""){
return true;
} else {
return false;
}
}
';
return $script;
}
function number(){
$script = '
function number(number,min,max){
if(filled(number)){
if(isNaN(number)){
return false;
} else {
return true;
}
} else {
return false;
}
}
';
return $script;
}
function len(){
$script = '
function len(string,min,max){
if((string.length > max) || (string.length < min)){
return false;
} else {
return true;
}
}
';
return $script;
}
function minmax(){
$script = '
function minmax(number,min,max){
if( parseInt(number) > max || parseInt(number) < min ){
return false;
} else {
return true;
}
}
';
return $script;
}
}
?>