IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

problème de réaffichage d'un (ajax) embedded form en cas de données non valides


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    334
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 334
    Points : 73
    Points
    73
    Par défaut problème de réaffichage d'un (ajax) embedded form en cas de données non valides
    Bonjour,
    j'ai un petit souci concernant l'affichage d'un embedded form lorsqu'il comporte des ereurs. En fait mes embedded forms sont rajoutés via une action ajax.
    Voici mon code:
    Pour info il s'agit d'une relation 1-n.

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    class AuteurForm extends BaseAuteurForm
    {
     
      public function configure()
      { 	
     	parent::configure();
     
       $auteurArticle = new Article(); 
       $auteurArticle->setAuteur($this->getObject());
       $formArticle = new ArticleForm($auteurArticle);
       $this->embedForm('NewArticle', $formArticle);
     
     
    	...
    	}
    public function addNewArticle($key)
      {
        $article = new Article();
        $article->setAuteur($this->getObject());
        $form = new ArticleForm($article);
     
        $this->embeddedForms['NewArticle']->embedForm($key, $form);
        $this->embedForm('NewArticle', $this->embeddedForms['NewArticle']);
     
      }
     
    public function bind(array $taintedValues = null, array $taintedFiles = null)
      {
     
      if (isset($taintedValues['NewArticle'])){
      foreach($taintedValues['NewArticle'] as $key=>$new)
        {
       if (!isset($this['NewArticle'][$key]))
          	 {
          		$this->addNewArticle($key);
       		 }        
        }      
       }
        parent::bind($taintedValues, $taintedFiles);    
      }      
     
    protected function doBind(array $values)
      {
      	parent::doBind($values);
     
      	if ($this->isValid() && '' === trim($values['NewArticle']['ref']))
        {
          unset($values['NewArticle'], $this['NewArticle']);
        }
    }
    .....
    //controller
     
    protected function processForm(sfWebRequest $request, sfForm $form)
      {
     
       $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
     
     
       if ($form->isValid())
       {    	 
      	 $auteur = $form->save();
     
         $this->redirect('auteur/show?id='.$auteur->getId());
     
       }
       }
    quand les valeurs rentrées dans les embedded form sont valides, elles sont bien stockées dans la base. Par contre en cas de présence d'erreur, l'embedded form ne se réaffiche pas au niveau du formulaire principal.

    je ne comprends pas d'où ça vient, des méthodes Bind? du processForm? du template?..je suis un peu perdue

    Merci pour votre aide!!

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 396
    Points : 396
    Points
    396
    Par défaut
    Bonjour,

    Pourrais-tu copier le code de ton modèle de données (schema.yml) histoire d'avoir la description des tables Auteur et Article ; et également décrire ce que tu souhaites avoir dans ton formulaire AuteurForm ?

Discussions similaires

  1. [1.x] Problème avec les Embedded Forms
    Par Fanopsis dans le forum Symfony
    Réponses: 0
    Dernier message: 19/12/2012, 18h21
  2. [1.x] Embedded Forms 1 to many : ajout dynamique avec ajax
    Par rastaferraille dans le forum Symfony
    Réponses: 3
    Dernier message: 30/03/2011, 11h53
  3. Problème avec XmlDocument [Données non valide]
    Par mobscene dans le forum C#
    Réponses: 1
    Dernier message: 29/08/2007, 23h16
  4. Réponses: 1
    Dernier message: 27/07/2005, 17h08
  5. Problème de réaffichage d'image
    Par benj63 dans le forum C++Builder
    Réponses: 2
    Dernier message: 09/12/2004, 09h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo