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 input radio


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 131
    Par défaut Probleme input radio
    bonjour, j ai un petit soucis je m'arrrache les cheveux avec ça.. j ai un formulaire sous symfony avec des input type radio , tout fonctionne mais le problème lors de la récupération des valeurs je récupère les keys au lieu de la valeur je ne comprends pas d'ou vient le pb ..


    ci joint mon form.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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    static protected $choices1 = array(
    'Tres interessant',
    'interessant',
    'je ne connais pas cette rubrique',
    'pas interessant'
      );
    static protected $choices2 = array(
    'Tres facile',
    'facile',
     'difficile',
    'tres difficile'
      );
    static protected $choices3 = array(
    'Tres claires',
    'claires',
    'compliquees',
    'tres compliquees'
      );
     
      public function configure()
      {
      	$this->widgetSchema['test']  = new sfWidgetFormSelectRadio(array('choices'  => self::$choices1));
     
      	$this->widgetSchema['navigation']  = new sfWidgetFormSelectRadio(array('choices'  => self::$choices2));
     
      	$this->widgetSchema['informations']   = new sfWidgetFormSelectRadio(array('choices'  => self::$choices3));
     
    	$this->widgetSchema['avis'] = new sfWidgetFormTextarea();
     
    	$this->setValidators(array(
    			'test'         => new sfValidatorChoice(array('required' => true,'choices' => array_keys(self::$choices1))),
                            'navigation'      => new sfValidatorChoice(array('required' => true,'choices' => array_keys(self::$choices2))),
    			'informations'       => new sfValidatorChoice(array('required' => true,'choices' => array_keys(self::$choices3))),
                            'avis'   => new sfValidatorString(array('min_length' => 4))
        	));
    	unset($this['id']);
      }
    et mon 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
     
    public function executeFormulaireW(dmWebRequest $request)
      {
        $form = new TestForm();
     
        if ($request->isMethod('post')) {
           $form->bind($request->getParameter($form->getName()));
     
         if ($form->isValid()) {
     
          $form->save();
           //send mail here
                    dm::enableMailer();
     
                    $this->getService('mail')->setTemplate('mail_test')
                            ->addValues(array(// add values to populate the template  
                                'nom' => htmlentities($nom, ENT_QUOTES),
    			    'prenom' => htmlentities($prenom, ENT_QUOTES),
                                'user_email' => htmlentities($email, ENT_QUOTES),
    			    'test' => $form->getValue('test'),
    			    'navigation' => $form->getValue('navigation'),
    			    'informations' => $form->getValue('informations'),
    			    'avis' => htmlentities($form->getValue('avis'), ENT_QUOTES)
                            ))
                            ->send();
                    $this->getUser()->setFlash('globalValid', 'Merci de votre participation.');
                    $this->redirect('/');
          }
          $this->getUser()->setFlash('incomplete', 'Des champs sont incomplets ou invalides, merci de corriger ceux-ci.');
          $this->redirectBack();
        }
    exemple $form->getValue('test') renvoit 1 si on coche intéressant

    Merci de votre aide

  2. #2
    Membre émérite Avatar de Herode
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par défaut
    C'est normal : tu récupères les clés parce que ce sont elles qui sont pertinentes du point de vue de la base de données. La clé est un identifiant, pas la valeur.

    Si tu veux que tes clés correspondent à tes valeurs, passe au widget le tableau associatif correspondant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    static protected $choices1 = array(
    'Tres interessant' => 'Tres interessant',
    'interessant' => 'interessant',
    'je ne connais pas cette rubrique' => 'je ne connais pas cette rubrique',
    'pas interessant' => 'pas interessant'
      );

  3. #3
    Membre émérite Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Par défaut
    Ou utilise un enum, comme ça c'est doctrine qui gère tout avec Mysql.

Discussions similaires

  1. Activer boutons checkbox SEULEMENT si un input radio est coché
    Par bobic dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 28/04/2006, 14h05
  2. probleme input
    Par snaxisnake dans le forum Langage
    Réponses: 3
    Dernier message: 15/02/2006, 15h45
  3. problemes input texte
    Par Shadow69 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 15/02/2006, 03h56
  4. probleme bouton radio avec onChange dans formulaire
    Par wil4linux dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/09/2005, 11h26
  5. probleme bouton radio checked
    Par coachbob44 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/04/2005, 10h02

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