Login Retreive lost passwordRegister
Search

Forum Index / NL Forum / setErrorMessage en setError

[ This topic is solved ]

  Dennis 31 May 10 / 20:33  
Changed at 31 May 10 / 20:38
Zou het mogelijk zijn om: eerst zelf een error message in te stellen voor als de waarde niet goed is ingevuld volgens mijn validatorfunctie en dat er dan een error wordt gegeven die ik in setErrorMessage heb geplaatst.
Maar als er dan vervolgens een fout in mijn onCorrect functie wordt gezien, dat ik dan een fout afbeeld mbv setError en dan deze dan de foutmelding van setErrorMessage overschrijft. Dus volgens het voorbeeld:

<?php
$this
->form = new FormHandler("Loginform");
$this->form->textField("Username""username"FH_ALPHA_NUM);
$this->form->setErrorMessage("username""Ongeldige username");
$this->form->passField("Password""password"FH_PASSWORD);
$this->form->setErrorMessage("password""Ongeldig password");
$this->form->submitButton("Log in");
$this->form->onCorrect("doLogin");


function 
doLogin($data, &$form)
{
  if(
$data['username'] == "lala")
  {
     
$form->setError("username""Deze username bestaat niet.");
     return 
false;
  }
  echo 
"Formulier voltooid geen foutmelding";
}
?>

Er zal dan denk ik het volgende moeten gebeuren?:
Er wordt nu standaard een "Ongeldige username" foutmelding getoond bij een fout en als de username lala is wordt de foutmelding "Deze username bestaat niet" getoond.

In de huidige FH gebeurd bij mij het volgende:
Bij mij wordt nu standaard de foutmelding "Ongeldige username" geplaatst ook al zou deze "Deze username bestaat niet." moeten geven.

Ik hoor graag of ik iets fout doe, ofdat dit zo hoort, als dit zo hoort hoe zou ik het kunnen veranderen?

PS Bedankt voor het maken van Formhandler, ik vind het verder echt top en het scheelt super veel werk!

Met vriendelijke groet,
Dennis

  Johan Wiegel (Admin) 31 May 10 / 21:14  
Dennis,

validatie hoort niet in de oncorrect thuis.

maak van
<?php
$this
->form->textField("Username""username"FH_ALPHA_NUM); 
?>


eens

<?php
$this
->form->textField("Username""username"FH_ALPHA_NUM.'|MIJN_CHECK'); 
?>


en voeg een functie toe:

<?php
function MIJN_CHECK$value )
{
  if(
$value == "lala")
  {
     return 
"Deze username bestaat niet.";
  } 
}
?>


dan worden de twee controlles beide uitgevoerd.

  Dennis 12 June 10 / 14:10  
Changed at 12 June 10 / 14:11
Ik heb je voorbeeld geprobeerd. Echter werkt het niet door de | slaat hij de MIJN_CHECK gewoon over, ik heb ook al een & geprobeerd, maar dat werkt ook niet

Ik krijg dan namelijk de volgende notice melding:

Notice: class.Field.php at 227 Unknown validator: "IsAlphaNum&MIJN_CHECK" used in field "username"

  Johan Wiegel (Admin) 12 June 10 / 19:19  
Heb even voor je getest. Onderstaande werkt precies zoals het moet

<?php
function MIJN_CHECK$value )
{
  if(
$value == "lala")
  {
     return 
"Deze username bestaat niet.";
  } 


function 
doLogin()
{
    
print_R$aData );
}


$form = new Formhandler();
$form->setMask("<div class='time'>\n\n".
                
"<label>%title% %seperator% \n".
                
" </label>%field% %help% \n".
                
" %error%\n\n".
                
"</div>\n\n"
false);

$form->textField("Username""username"FH_NOT_EMPTY.'|MIJN_CHECK'); 

$form->submitButton("Log in");
$form->onCorrect("doLogin"); 
$form->Flush();
?>

  Dennis 13 June 10 / 12:14  
Ja idd, als ik FH_NOT_EMPTY gebruik gaat alles goed, maar zodra ik dan FH_ALPHA_NUM of FH_ALPHA gebruik dan werkt het niet meer.
Is er een mogelijkheid om toch FH_ALPHA of FH_ALPHA_NUM te gebruiken EN een eigengemaakte validatie functie?

  Johan Wiegel (Admin) 13 June 10 / 12:38  
Nieuwe donwload geplaatst, vervang even je class.validator.php door deze versie dan werkt het ook met FH_ALPHA en FH_ALPHA_NUM

  Dennis 13 June 10 / 13:25  
Helemaal top!
Dankjewel!

  Dennis 13 June 10 / 18:07  
Tot zover werkt het perfect. Ik wil nu alleen alles op een Object Georienteerde manier aanpakken. Een object genaamd piet(van de klasse Piet) heeft op dit moment een form. Als ik nu de validator functie van Piet wil meegeven als validator functie voor mijn form en ik wil nog steeds de standaard FH_ALPHA_NUM validator erbij hebben dat kan dat niet, is hier misschien ook een oplossing voor?
<?php
class Piet
{
  private 
$form;

  public function 
__construct
  
{
    
$this->form = new FormHandler("Pietjesform");
    
$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.";
    }
    return 
true;
  }

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


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

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

?>

  Top


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