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 :

Javascript Onchange() sur un select


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
    Juin 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 82
    Par défaut Javascript Onchange() sur un select
    Bonjour à tous.

    Actuellement j'ai un module générer par symfony depuis un model. J'ai donc un formulaire d'ajout dune nouvelle entité qui a été générer par symfony, que j'ai par la suite un peu modifié:
    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
    class FichiersForm extends BaseFichiersForm
    {
      public function configure()
      {
          unset(
          $this['created_at'], $this['updated_at'],
          $this['index_modificateur']
        );
     
          $this->useFields(array('titre', 'famille', 'importance', 'nom_fichier', 'description', 'taille', 'extension', 'index_createur', 'type'));
     
          $this->widgetSchema['nom_fichier'] = new sfWidgetFormInputFile(array(
      'label' => 'Fichier',
    ));
     
          $this->validatorSchema['nom_fichier'] = new sfValidatorFile(array(
      'required'   => false,
      'path'       => sfConfig::get('sf_upload_dir').'/fichiers',
    ));
     
          $this->widgetSchema['taille'] = new sfWidgetFormInputHidden();
          $this->widgetSchema['extension'] = new sfWidgetFormInputHidden();
          $this->widgetSchema['index_createur'] = new sfWidgetFormInputHidden();
          $this->widgetSchema['type'] = new sfWidgetFormInputHidden();
     
          $this->widgetSchema['famille'] = new sfWidgetFormChoice(array(
            'choices'   => Doctrine_Core::getTable('Fichiers')->getCodes(),
            'multiple'  => false,
            'expanded'  => false,
          ), array(
            'onChange' => choix(this.value),
        ));
     
          $this->validatorSchema['famille'] = new sfValidatorChoice(array(
      'choices'  => array_keys(Doctrine_Core::getTable('Fichiers')->getCodes()),
      'required' => false,
          ));
     
      }
    }
    Mon select famille récupère dans la base de donnée les famille déjà existante:
    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
    public function getCodes()
        {
          $familles = Doctrine::getTable('Fichiers')
          ->createQuery('a')
          ->select('a.famille')
          ->groupBy('a.famille')
          ->execute();
     
          $tabeau = array();
          $tableau[NULL]='-- Famille --';
          foreach ($familles as $famille)
          {
              $tableau[$famille->getFamille()]=$famille->getFamille();
          }
          $tableau["Autre"]="Autre";
     
          return $tableau;
        }
    Maintenant, j'aimerais que lorsque l'utilisateur choisit autre, une div avec un id autre contenu un input apparaisse.
    Je sais faire cela en html et javascript:
    Code html : 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
    <HTML>
    <HEAD>
    <script type="text/javascript">
    function choix(texte)
    {
        if (document.formulaire.famille.value=="Autre")
        {
            document.getElementById("autre").style.display= 'block';
        }
        else
        {
            document.getElementById("autre").style.display= 'none';
        }
    }
    </script> 
    </HEAD>
    <body>
    <form action="index.php" name="formulaire">
        <div>
            <select name="famille" onchange="choix(this.value)">
                <option value="Musiques">Musiques</option>
                <option value="Films">Films</option>
                <option value="Textes">Textes</option>
                <option value="Autre">Autre</option>
            </select>
        </div>
     
        <div id="autre" style="display:none">
            <label for="autre_famille" class="">Autre :</label>
            <input type="text" name="autre_famille">
        </div><br /><br />
     
        <input type="submit" value="Envoyer">
    </form> 
    </body>
    </HTML>

    mais comment faire pour mettre le onchange sur le select dans symfony??

    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
    Essaye la méthode (sfWidget) sfWidget::setAttribute ($name, $value). De mémoire, c'est comme ça que j'avais résolu ce genre de problème. Sinon,il faudra peut-être regarder dans le renderer associé à ton widget.

Discussions similaires

  1. propriété onChange sur un select, pb sous IE7 !
    Par avogadro dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/02/2007, 15h46
  2. onchange sur un SELECT : passage de paramètre
    Par NikoBe dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 31/10/2006, 11h14
  3. 2 actions sur evenement onchange sur champ Select
    Par falz222 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/08/2006, 20h59
  4. onChange sur un SELECT
    Par linar009 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/07/2006, 10h14
  5. [Onchange] sur checkbox selection ds une liste deroulante
    Par maxxou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/01/2006, 00h17

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