Bonjour, j'ai un soucis avec mon formulaire.

Lorsque tous les champs sont remplis, les données sont envoyées dans la base.

Par contre, quand le formulaire n'est pas bien rempli, je souhaite afficher les erreurs de type "Vous devez indiquez votre nom..."

J'ai créer un validateur, crée une fonction HandleError dans mon action.class et j'ai indiqué à mon template d'afficher les erreurs si il y'en a, mais rien ne s'affiche, une page 404 semble être renvoyée.

Voici le code en question dans mon action.class :


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
20
21
22
23
24
25
26
27
28
 
//données qui seront utlisées dans le template
 
public function executeDetails()
{
$c = new Criteria();
$c -> add(ReunionPeer::ID_REUNION,
      $this->getRequestParameter('id'));
$this->zone = ReunionPeer::doSelectOne($c);
 
}
 
//l'action éxécutée lors de la validation du formulaire
public function executeAjoutvalid()
{
 
$inscrit=new InscritReunion();
$inscrit->setIdReunion($this->getRequestParameter('id_reunion'));
$inscrit->setMailInscrit($this->getRequestparameter('mail'));
$inscrit->save();
 
}
 
public function handleErrorAjoutvalid()
{
	return sfView::ERROR;
 
}
Voici le code de mon template :


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
20
21
22
23
24
25
26
27
<div id="statut_inscription" style="display:none">
<?php if ($sf_request->hasErrors()): ?>
  <p><? echo ('Formulaire pas correct !!')?> :</p>
  <ul>
    <?php foreach($sf_request->getErrors() as $name => $error): ?>
      <ol><?php echo $error ?></ol>
    <?php endforeach; ?>
  </ul>
<?php endif ?>
</div>
<div id="inscription_reunion">
 
 
<?php 
 
 
echo form_remote_tag(array(
	"url" =>'reunion/ajoutvalid',
	'update'  => array('success' => 'statut_inscription',  'failure' => 'statut_inscription'),
  	'script'  => true,
	'loading' => "Element.show('indicator')",
    'success' => "Element.hide('indicator');Element.show('statut_inscription');Element.hide('inscription_reunion');",
	'failure' => "Element.hide('indicator');"), array( "name" => "ajoutvalid"));
 
//Ensuite j'ai mes champs et le submit
 
?>
voici le lien pour accéder à ce formulaire :

http://myproject/reunion/details/id/4


Avez vous une idée ??