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

JSF Java Discussion :

valeurs dans SelectOneChoice selon SelectOneRadio


Sujet :

JSF Java

  1. #1
    Membre confirmé Avatar de Romain93
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Par défaut valeurs dans SelectOneChoice selon SelectOneRadio
    Bonjour,

    Ce que je veux faire est tres simple. J'ai un JSP dans lequel j'ai un SelectOneRadio, suivi d'un SelectOneChoice. Le SelectOneRadio a par exemple les deux buttons "voiture" et "avion", et le SelectOneChoice : "renaud", "peugeot", "airbus", "boeing". Vous l'aurez compris, je veux que renaud et peugeot n'apparaissent que si "voiture" a ete selectionne au-dessus, et airbus et boeing que si "avion" a ete selectionne.

    J'ai essaye quelque chose comme ca:

    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
            <af:selectOneRadio label="Vehicule"
                               value="#{StairliftSurvey.seat}"
                               immediate="true" id="vehicule"
                               partialTriggers="marque">
              <af:selectItem label="Voiture" value="Voiture" id="Voiture"/>
              <af:selectItem label="Avion" value="Avion" id="Avion"/>
            </af:selectOneRadio>
     
            <af:selectOneChoice label="Marque"
                                value="#{StairliftSurvey.seatsize}"
                                id="marque" partialTriggers="vehicule">
              <af:selectItem label="Peugeot" value="a"
                             rendered="#{vehicule == \"Voiture\"}"/>
              <af:selectItem label="Renaud" value="b"
                             rendered="#{vehicule == \"Voiture\"}"/>
              <af:selectItem label="Airbus" value="c"
                             rendered="#{vehicule == \"Avion\"}"/>
              <af:selectItem label="Boeing" value="d"
                             rendered="#{vehicule == \"Avion\"}"/>
            </af:selectOneChoice>
    Mais bon ca ne marche pas. Savez-vous s'il y a moyen de faire ca proprement avec les rendered? Sinon, je sais qu'on peut faire ca en JavaScript (mais je sais pas comment). Donc a defaut, sauriez-vous comment faire en JS?

    Merci d'avance

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 120
    Par défaut Tentative d'aide
    A mon avis, tu aura du mal à faire ca avec le rendered. En effet, les evènements liés à la sélection ne sont déclenchés qu'à la validation de ton formulaire !!!

    Sinon, effectivement, ca doit être faisable en JS :
    - Tout d'abord, je serais toi, je séparerais ton select oneChoice en deux listes (une pour les marques de voitures et l'autre pour les avions)
    - Ensuite, tu encadres
    <af:selectOneChoice label="Marque"
    value="#{StairliftSurvey.seatsize}"
    id="marque" partialTriggers="vehicule">
    <af:selectItem label="Peugeot" value="a"
    rendered="#{vehicule == \"Voiture\"}"/>
    <af:selectItem label="Renaud" value="b"
    rendered="#{vehicule == \"Voiture\"}"/>
    <af:selectItem label="Airbus" value="c"
    rendered="#{vehicule == \"Avion\"}"/>
    <af:selectItem label="Boeing" value="d"
    rendered="#{vehicule == \"Avion\"}"/>
    </af:selectOneChoice>
    dans une balise div ayant une classe de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    .blockCache {
    	visibility: hidden;
    	font-size: 12px;
    	font-family: arial;
    	text-align: center;
    }
    - tu ajoutes un fonction javascript qui agit sur ton af:selectOneRadio des voitures et des avions. Cette fonction doit afficher le bloc caché ou le cacher qd tu cliques/décliques une sélection.

    Je n'ai jamais essayé de faire ca avec ce type de balises mais je pense que ca pourrait marcher.

    Bonne chance

  3. #3
    Membre confirmé Avatar de Romain93
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Par défaut valeurs dans SelectOneChoice selon SelectOneRadio
    Mon chef ne voulait pas de Javascript trop long donc j'ai trouve autre chose: je mets les radio buttons dans un premier form, avec un auto-submit, et une ligne de javascript dedans pour rafraichir la page. et ensuite je mets le menu deroulant dans un second form:

    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
          <af:form>
            <af:selectOneRadio label="vehicule"
                               value="xxx"
                               autoSubmit="true" immediate="true"
                               onchange="setTimeout(\"history.go(0)\",100)">
              <af:selectItem label="voiture" value="voiture"/>
              <af:selectItem label="avion" value="avion"/>
            </af:selectOneRadio>
          </af:form>
          <af:form>
            <af:selectOneChoice label="marque"
                                value="xxx">
              <af:selectItem label="..." value="..."
                             rendered="#{xxx == \'avion\'}"/>
              <af:selectItem label="..." value="..."
                             rendered="#{xxx  == \'avion\'}"/>
              <af:selectItem label="..." value="..."
                             rendered="#{xxx  == \'voiture\'}"/>
              <af:selectItem label="..." value="..."
                             rendered="#{xxx  == \'voiture\'}"/>
            </af:selectOneChoice>
          </af:form>
    Voila, c'est peut-etre pas tres propre mais ca a l'air de marcher. Merci beaucoup pour ta reponse!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changer valeurs dans table selon case à cocher
    Par lucie18 dans le forum VBA Access
    Réponses: 14
    Dernier message: 13/12/2014, 21h37
  2. recuperer valeur dans bdd selon formulaire
    Par tanguynoub dans le forum Langage
    Réponses: 2
    Dernier message: 05/11/2012, 15h05
  3. {VBA Excel} Colorier des cases selon la valeur dans une autre
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/06/2008, 09h56
  4. Couleur selon une valeur dans un <td> en javascript/html
    Par twingo321 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/11/2007, 09h27
  5. Réponses: 1
    Dernier message: 25/04/2007, 16h23

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