Login Retreive lost passwordRegister
Search

Forum Index / NL Forum / functie van een object als validatie functie

[ This topic is solved ]

  Dennis 18 June 10 / 22:10  
Ik was bezig om mijn form in een object te stoppen en vervolgens een validatie functie van het object piet van de klasse Piet mee te geven aan een form. Dit gaat goed, totdat ik echter 2 validatie functies tegelijk wil gaan gebruiken, zie onderstaand voorbeeld.
<?php
class Piet
{
  private 
$form;

  public function 
__construct()
  {
    
$this->form = new FormHandler("Pietjesform");
    
$this->form->textfield("Jan""jan"FH_ALPHA_NUM);
    
$this->form->textField("Username""username"/*FH_ALPHA_NUM . '|' .*/ array(&$this"check_username"));
    
$this->form->submitButton("Log in");
    
$this->form->onCorrect(array(&$this,"doLogin"));
  }

  public function 
check_username($username)
  {
    if(
$username == "lala")
    {
      return 
"Deze username bestaat niet.";
    }

    if(
$username == $this->form->getValue("jan"))
            return 
"lalalala";
    return 
true;
  }

  public function 
doLogin($data,$form)
  {
    
//Iets doen
  
}


  public function 
draw()
  {
    return 
$this->form->flush(true);
  }
}

$piet = new Piet();
echo 
$piet->draw();
?>


als ik de volgende regel
<?php
$this
->form->textField("Username""username"/*FH_ALPHA_NUM . '|' .*/ array(&$this"check_username"));
?>

verander naar
<?php
$this
->form->textField("Username""username"FH_ALPHA_NUM '|' . array(&$this"check_username"));
?>

werkt het niet meer. En krijg ik de volgende fout: Notice: class.Field.php at 194 Unknown validator: "Array" used in field "username"
Is hier een makkelijke oplossing voor?

  Remco van Arkelen (Admin) 18 June 10 / 23:45  
Hoi Dennis,

Dat is een van de redenen dat het een "undocumented feature" is ;)
We zijn er nog niet precies over uit hoe we dit het netst op kunnen lossen. Het mooiste zou ik persoonlijk een dergelijke constructie vinden:

<?php
// In my head...not yet implemented
$form->textField'Username''username' );
$form->addValidator'username'FH_ALPHA_NUM );
$form->addValidator'username', array( $this'check_username' ) );
?>


Maar zoals gezegd, dit is EEN mogelijkheid, weet nog niet of het de beste is. Voor nu raad ik je aan om de FH_ALPHA_NUM aan te roepen in je check_username methode, of om daar een soortgelijke check uit te voeren.

  Top


powered by PHP-GLOBE   © 2004 - 2012 FormHandler. All rights reserved.   -   Open source license