Bonjour,
J'ai créé sans aller très loin dans le développement, un formulaire qui permet de saisir un commentaire et l'affiche sur la page.
Suite au développement, plusieurs petit soucis 'minime' apparaissent.
1/ un decallage entre le label et le input text en sortie html
2/ en rafraichissant ma page, l'enregistrement se fait à nouveau.
De plus, j'aurai aimé savoir si je respecte bien l'ensemble du MVC et que le tout est codé dans les règles.
Un screenshot pour représenter le tout :
Le code :
indexController.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 class CommentaireForm extends Zend_Form{ public function __construct($options=null){ parent::__construct($options); $this->setName('ajouterCommentaire'); $nom = new Zend_Form_Element_Text('Nom'); $nom->setLabel('nom') ->setRequired(true); $email=new Zend_Form_Element_Text('Email'); $email->setLabel('email') ->setRequired(True); $contenu= new Zend_Form_Element_Textarea('Contenu'); $contenu->setLabel('commentaire') ->setRequired(True); $submit = new Zend_Form_Element_Submit('envoyer'); $submit->setLabel('envoyer'); $this->addElements(array($nom,$email,$contenu,$submit)); } }
addcom.phtml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 function addcomAction(){ $this->view->title="ajouter com"; $formCom = new CommentaireForm(); if($this->_request->isPost()){ $formData = $this->_request->getPost(); $formCom->populate($formData); $formData=$formCom->getValues(); if($formCom->isValid($formData)){ $com = new Commentaire(); $commentaire = $com->createRow($formData); if($commentaire){ $id=$commentaire->save(); } } } $this->view->formCom=$formCom; }
Commentaire.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <?php echo $this->action('affichercom','index'); echo $this->formCom; ?>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 class Commentaire extends Zend_Db_Table_Abstract { protected $_name = 'commentaire'; protected $_primary = 'Id'; public function getCommentaireAll(){ return $this->fetchAll(); } }
Partager