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:
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!
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"
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?
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);
}
}