Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous.
Après quelques de recherche sur mon problème, je décide de poster sur ce forum car je ne trouve pas de solution.
Débutant avec zend, je souhaiterai créer un formulaire. Pour ce faire, je créer un classe héritant de Zend_Form. Le problème est que quand je lance ma page (ou le form devrait s'afficher) rien ne s'affiche (même pas mon layout).
J'ai un peu cerner mon problème et le soucis viendrait de mon instanciation.
Le code : $form = new MonFormulaire()
Pour le test, ma classe MonFormulaire est vide (j'ai bien ajouter l'héritage , j'avais essayer de résoudre le problème en surchargeant le constructeur de la classe mère, ou encore de créer un fonction init() mais rien à faire .
Par contre quand je remplace MonFormulaire par Zend_Form dans l'instanciation ça fonctionne.
Quelqu'un aurait-il une solution ?
Dernière modification par micka (25-10-2010 19:26:39)
Hors ligne
le code de MonFormulaire ?
Hors ligne
Voici le code complet de la classe :
class monFormulaire extends Zend_Form { public function __construct($options = null) { parent::__construct($options); $this->setName('contact_us'); $title = new Zend_Form_Element_Select('title'); $title->setLabel('Title') ->setMultiOptions(array('mr'=>'Mr', 'mrs'=>'Mrs')) ->setRequired(true)->addValidator('NotEmpty', true); $firstName = new Zend_Form_Element_Text('firstName'); $firstName->setLabel('First name') ->setRequired(true) ->addValidator('NotEmpty'); $lastName = new Zend_Form_Element_Text('lastName'); $lastName->setLabel('Last name') ->setRequired(true) ->addValidator('NotEmpty'); $email = new Zend_Form_Element_Text('email'); $email->setLabel('Email address') ->addFilter('StringToLower') ->setRequired(true) ->addValidator('NotEmpty', true) ->addValidator('EmailAddress'); $submit = new Zend_Form_Element_Submit('submit'); $submit->setLabel('Contact us'); $this->addElements(array($title, $firstName, $lastName, $email, $submit)); } }
Le problème est que même si je met juste ça:
class monFormulaire extends Zend_Form { }
Ca ne marche pas.
Dernière modification par micka (25-10-2010 16:34:38)
Hors ligne
et le code de ta vue et de ton controller ?
Hors ligne
Mon controleur :
function indexAction() { $form = new monFormulaire(); $this->view->form = $form; }
Ma vue :
<?php echo $this->form ;?>
Comme je disais dans mon premier message, si dans mon controleur je met :
$form = new Zend_Form();
Ma page s'affiche correctement. Alors qu'avec l'appel à ma classe hériter, la page reste blanche, rien ne s'affiche.
Hors ligne
Je crois que tu n'affiches tout simplement pas les erreurs php
Deja il doit manger un require_once de ton fichier contenant ton formulaire...
Hors ligne
Quelle est la méthode pour afficher les erreurs php ?
Sinon pour le require_once une fois j'avais mis
require_once('forms/monFormulaire.php')
Mais ca n'avais rien changer (Peut-être l'appel est mauvais ?). Et comme pour l'utilisation d'une class héritant de dbtable j'avais pas eu besoin de mettre de require_once, je me disais pas besoin.
Je resteterai en rentrant ce soir.
Dernière modification par micka (25-10-2010 17:25:39)
Hors ligne
Dans ton php.ini
error_reporting = E_ALL
Hors ligne
Merci playmobilette, tu avais bien raison il me manquait un require_once.
Mon problème quand j'en avais mis un est que j'avais mis :
require_once('forms/monForm');
alors qu'il fallait que je mette :
require_once(dirname(__FILE__)."/../forms/monForm.php");
Encore merci. Un peu déçu d'avoir buté pour truc aussi évident
Bonne soirée
Hors ligne
De rien, par contre essaye de voir avec l'autoloader je te laisse chercher, pour avoir une class de la form My_Form_Toto
Hors ligne
Pages: 1