[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Check Form Classe - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Benutzeravatar
vscope
Beiträge: 477
Registriert: 24. Aug 2004, 22:11
Wohnort: Austria/Vienna
Kontaktdaten: ICQ Website

Check Form Classe

13. Sep 2004, 10:19

Hallo,

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');

Dann macht im im HTML Header ein

Code: Alles auswählen


print $check->getScript();

und im Form hängt ein

Code: Alles auswählen


onSubmit="return checkForm();"

dazu.

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;
	}




}

?>

Zurück zu „Allgemeines [R2]“