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 :

Probleme dans la validation d'un formulaire


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de phpiste
    Homme Profil pro
    Développeur Senior
    Inscrit en
    Septembre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 251
    Billets dans le blog
    7
    Par défaut Probleme dans la validation d'un formulaire
    Bonjour à tous
    Voila j'ai un ptit probleme dans la validation d'un formulaire
    En effet mon module ne contient qu'une seule action est executeIndex qui doit manipuler tout les ligne d'une table (une sorte de config ) ;les noms des input sont delai[] pour les traiter en temps que tableau avec pour chaque input son id correspeandant pour savoir qu'elle on va modifie avec tels valeurs

    En effet je doit maintennat valider mon formulaire j'ai creer donc un fichier yml ("send.yml") sous /validate dont j'ai mis ce contenu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    fields:
      delai[]: 
        required:
          msg:      le delai ne peut pas etre Null
        sfStringValidator:
          min:       2
          min_error: le champ est < 2
          max:       100
          max_error: le champ est >100
    et voila le contenu de l'action
    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
     
    class delaiActions extends sfActions
    {
      /**
       * Executes index action
       *
       */
      public function executeIndex()
      {
    	$the_delais 		= $this->getRequestParameter('delai') ;
    	$the_id_delais 		= $this->getRequestParameter('id_delai') ;
    	$this->delais = $this->getDelais() ;
    	//$this->executeSend() ;
     
    	//si le nombre de delai modifié et envoyé 
    	//different du nombre des identifiants
    	if(count($the_delais) !=0){
    		if(count($the_delais) !=count($the_delais)){exit() ;}
     
    			for($i=0;$i<count($the_delais);$i++)
    			{		
    				$etatDossier = EtatDossierPeer::retrieveByPk($the_id_delais[$i]);
    				$this->forward404Unless($etatDossier);
    				$etatDossier->setDureeEtatDossier($the_delais[$i]);
    				$etatDossier->save();
     
    			}
    			return $this->redirect('delai');
    		}
      }
      public function getDelais(){
      	return  EtatDossierPeer::doSelect(new Criteria());
      }
       public function executeSend()
      {echo 'je suis ici!' ;
        if ($this->getRequest()->getMethod() != sfRequest::POST)
        {
          // Prepare data for the template
     
          // Display the form
          return sfView::SUCCESS;
        }
        else
        {
          // Handle the form submission
           $this->redirect('delai');
        }
      }
      public function handleErrorSend()
      {
        // Prepare data for the template
     
        // Display the form
        return sfView::SUCCESS;
      }
    }
    en effet la validation ça marche pas

    Est ce que quelqu'un peut me dire ou est l'erreur
    Merci d'avance

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Bonjour,

    AMHA, il n'y a pas moyen de faire ce que tu fais (tableaux sans index ou dont le contenu n'est pas prévisible), en utilisant les fichiers de configuration. Le seul moyen est d'écrire toi -même tes classes de validation.

    Regarde cette discussion, certains s'y sont pris avant toi:
    http://www.symfony-project.org/forum/index.php/t/5770/

  3. #3
    Membre chevronné
    Avatar de phpiste
    Homme Profil pro
    Développeur Senior
    Inscrit en
    Septembre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 251
    Billets dans le blog
    7
    Par défaut
    Merci
    comme meme j'ai du mal a comprendre ce qu'ils disent dans le site officiel
    http://www.symfony-project.org/book/1_0/10-Forms
    Regarde auprès de : Using Array Syntax for Form Fields

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    J'avais totalement zappé cette section !
    Est-ce que ça convient à ton cas ?

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 76
    Par défaut
    effectivement on peut pas developper qlq chose sans avoir des problème...
    le problème c'est quand j'ajoute le fichier de configuration de la validation :

    - Si je laisse les zones de texte vide cela declenche une erreur qui me signale que les champs sont vides et que je dois les remplir, ça c'est bien et c'est que je veux.

    - Le problème c'est quand je saisis du texte dans les champs il me renvoie la meme erreur que si je les laisse vide.


    **********edit.yml**********
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    fields:
      title:
        required:
          msg:       Veuillez remplir title avant de poster
        sfStringValidator:
      excerpt:
        required:
          msg:       Veuillez remplir excerpt avant de poster
        sfStringValidator:
          email_error:  This excerpt address is invalid
    ***********action.class.php*************
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     public function handleErrorEdit()
      {
        $this->preExecute();
        $this->post = $this->getPostOrCreate();
        $this->updatePostFromRequest();
     
        $this->labels = $this->getLabels();
     
        return sfView::SUCCESS;
      }
    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
     public function executeEdit()
      {
        $this->post = $this->getPostOrCreate();
     
        if ($this->getRequest()->getMethod() == sfRequest::POST)
        {
          $this->updatePostFromRequest();
     
          $this->savePost($this->post);
     
          $this->setFlash('notice', 'Your modifications have been saved');
     
          if ($this->getRequestParameter('save_and_add'))
          {
            return $this->redirect('post/create');
          }
          else if ($this->getRequestParameter('save_and_list'))
          {
            return $this->redirect('post/list');
          }
          else
          {
            return $this->redirect('post/edit?id='.$this->post->getId());
          }
        }
        else
        {
          $this->labels = $this->getLabels();
        }
      }

    Avez vous une idée que dois-je faire pour remédier à ce problème??

    Merci de votre précieuse aide

Discussions similaires

  1. [MySQL] Vérifier une URL dans la validation d'un formulaire
    Par groupejtt dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 30/11/2006, 11h48
  2. Probleme dans la verificaton du champ d'un formulaire
    Par cladsam dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 27/01/2006, 09h00
  3. problem dans formulaire
    Par spilliaert dans le forum Langage
    Réponses: 2
    Dernier message: 16/12/2005, 21h23
  4. [HTML][FORMULAIRE] Probleme dans la récupération des données
    Par baddounet dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 15/08/2005, 18h51
  5. Réponses: 11
    Dernier message: 16/09/2004, 11h39

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