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 :

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));
	}
}
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
 
	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;
	}
addcom.phtml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
<?php
		echo $this->action('affichercom','index');
		echo $this->formCom;
?>
Commentaire.php
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();
  }
}