Ben nu bezig FH te implementeren in een testomgeving. Ik wil in een controller de onCorrect functie naar een andere method sturen. Dus stel ik heb de volgende class:
<?php
class Controller_Test extends Base {
function Formulier() {
// Formulier opmaak
$this->oForm->onCorrect(&$this, 'submit');
}
function submit() {
//Submit het formulier
}
}
?>
Echter werkt de &$this dus niet. Hoe kan ik dit het beste oplossen?
Je kunt in de onCorrect een array meegeven met de instantie van het object en de methode waarin je de data wilt opvangen. In (test!!)code ziet dat er ongeveer zo uit:
<?php
class Base
{
// No God Object ;)
}
class Controller_Test extends Base
{
public function formulier()
{
$form = new FormHandler();
$form->textField( 'Naam', 'naam', FH_NOT_EMPTY );
$form->textField( 'E-mail', 'email', FH_EMAIL );
$form->submitButton( 'Versturen' );
$form->onCorrect( array( $this, 'submit' ) );
return $form->flush( true );
}
public function submit( $data )
{
echo 'In de submit!<br />';
print_r( $data );
}
}
$ct = new Controller_Test();
echo $ct->formulier();
?>
Als ik $this gebruik dan komt hij niet bij de submit functie en ik krijg ook geen errors. Dus het aanroepen klopt.
Echter zie ik hetvolgende:
Mijn script draait op www.domein.nl/pagina/formulier/
De actie staat echter ingesteld op /index.php wat gebruikelijk is als je een bootstrap file gebruikt. Hoe kan ik echter de actie van het formulier veranderen naar wat anders?