![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Dziaiaj podczas dyskusji z PMadejem wynikł temat obiektowej obsługi formularzy. Zaświtał mi w głowie taki schemacik, jaki podaję niżej. Oczywiscie nie gwarantuję, ze zadziała - ale myślę, że wystarczająco obrazuje mój tok myśłenia. Co sądzicie do tagiego podejścia do tematu walidacji dancy hz formularzy?
BTW: w kodzie wielu rzeczy nie ma, ale nie w tym sęk... [php:1:5d9c559937]<?php class Form { var $arrFormElements = NULL; function Form() { $this->FormElements = array(); } function CreateField( $strName ) { $this->arrFormElements[$strFieldName] = new FormField(); } } class FormField { var $strName = ''; var $strType = ''; var $mixData = ''; var $blnRequired = false; var $blnValid = false; var $blnPattern = NULL; var $mixPatternName = ''; var $arrErrors = NULL; function FormField() { $this->arrErrors = array(); } function Create() { $smarty->display( 'form_elements/'.$this->strFieldType.'.tpl' ); /** * Zakładamy, ze mamy teplatesy typu: textarea, input, button itp. */ } function ValidatePattern( ) { if( $this->blnRequired ) { $this->blnValid = !is_empty( $this->mixData ); if( !$this->blnValid ) { $this->arrErrors[] = 'Must be filled'; } } if( !is_null( $this->$blnPattern ) ) { $this->blnValid = preg_match($this->$blnPattern, $this->$blnData); if( !$this->blnValid ) { $this->arrErrors[] = 'Must be corrected '.$this->strPatternName.' value!'; } } } } /** * Example of use */ $Form = new Form(); $Form->CreateField( 'pkwiu', true ); $Form->arrFormElements['pkwiu']->strType = 'input_text'; $Form->arrFormElements['pkwiu']->strData = $_POST['pkwiu']; $Form->arrFormElements['pkwiu']->strPattern = '([0-9]{2}.[0-9]{1,2}.[0-9]{1,2}-[0-9]{1,2}.[0-9]{1,2})'; $Form->arrFormElements['pkwiu']->strPatternName = 'PKWiU'; $Form->arrFormElements['pkwiu']->ValidatePattern(); if( !$Form->arrFormElements['pkwiu']->blnValid ) { $Form->arrFormElements['pkwiu']->Create(); foreach( $Form->arrFormElements['pkwiu']->arrErrors as $strError ) { echo '<br />'.$strError; } } ?> [/php:1:5d9c559937] |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 15:30 |