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 :

Affichage d'un div selon un choix effectué avec un selectOneRadio ou un checkbox


Sujet :

JSF Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juin 2012
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Affichage d'un div selon un choix effectué avec un selectOneRadio ou un checkbox
    Bonjour,

    Je suis débutant Java EE et je travaille sur une page qui contient un "selectOneRadio" (yes or no) qui doit être utilisé pour choisir si le client, sur lequel nous voulons affecter une modification, existe ou non.
    Cas 1: si le client existe, on clique sur "YES" et la page doit afficher une liste déroulante contenant tous les client en base et on en choisit un.
    Cas 2: si le client n'existe pas, on clique sur "NO" et cette fois-ci, la page affiche le formulaire d'enregistrement d'un nouveau client.

    Quelqu'un saurait-il m'indiquer comment procéder ?

    Merci d'avance pour votre aide.

  2. #2
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2013
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 269
    Points : 434
    Points
    434
    Par défaut
    Bonjour,

    Un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <f:ajax render="" listener=""/>
    dans le composant pourrait résoudre ta problématique
    Dans render le composant à updater et éventuellement une action à déclencher dans le listener.

    Sinon je préconiserais plutôt une checkbox pour un choix oui/non plutôt qu'un select, le checkbox est fait pour ça

  3. #3
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2013
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 269
    Points : 434
    Points
    434
    Par défaut
    Alors pour compléter ma réponse et être plus précis :
    En considérant que tout est encapsulé dans un formulaire, tu auras besoin de 2 panelGroup panelClientConnu et panelClientInconnu contenant l'un et l'autre ce que tu dois afficher suivant le choix de ta sélection.
    Dans le selectOneRadio, tu rajoutes un événement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <f:ajax render="panelClientConnu panelClientInconnu"/>
    ainsi tes 2 panels seront mis à jour à chaque changement de valeur du select.
    Enfin, dans tes panels, tu ajoutes un "rendered" avec la bonne valeur de ton select par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:panelGroup rendered="#{monController.clientConnu = 'YES'}"/>
    Je te dis tout ça de tête donc à adapter à ton code et sans certitudes que ma syntaxe est exact mais le principe est là.

  4. #4
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juin 2012
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    J'ai créer les PanelGroup comme indiqué et j'ai aussi inséré le f:ajax.
    Mon souci maintenant est au niveau de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <h:panelGroup rendered="#{monController.clientConnu = 'YES'}"/>
    du "rendered". Dois-je créer une classe Java pour le "moncontroller" ?

  5. #5
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2013
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 269
    Points : 434
    Points
    434
    Par défaut
    Oui, tu as besoin d'une classe "associée" à ta vue, mais c'est la même classe que tu utilises avoir ta liste des clients ou valider un client comme tu l'as signalé en préambule.
    Dans cette classe tu rajoutes un booléen qui n'est en fait que la value de ton selectOneRadio

  6. #6
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juin 2012
    Messages : 5
    Points : 3
    Points
    3
    Par défaut jen n'arrive pas a recuperer les value de mon selectoneradio
    je suis ta logique VirgApps mais je suis butté au niveau du code du controller qui doit gerer le selectoneradio
    voiçi le code de ma vue:
    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
     
    <h:form enctype="multipart/form-data" id="formulaire">
    			<fieldset>
    				<legend>Informations client</legend>
     
    				<h:outputLabel for="choixNouveauClient">Nouveau client ? <span
    						class="requis">*</span>
    				</h:outputLabel>
    				<h:selectOneRadio id="choixNouveauClient" required="true"
    					value="choixNouveauClient">
    					<f:selectItem id="choixnouveauClient" itemLabel="Yes"
    						itemValue="nouveauClient"  />
    					<f:selectItem id="choixancienClient" itemLabel="No"
    						itemValue="ancienClient" />
    					<f:ajax render="panelancienClient panelnouveauClient" />
    				</h:selectOneRadio>
     
     
     
    				<br /> <br />
     
     
     
    				<h:panelGroup id="panelnouveauClient"  rendered="#{clientBean.clientConnu == 'Yes'}">
     
    					<ui:include src="inc/inc_client_form.xhtml" />
     
    				</h:panelGroup>
     
     
     
    				<h:panelGroup id="panelancienClient" rendered="#{clientBean.clientConnu == 'No'}" >
     
    					<h:selectOneMenu name="listeClients" id="listeClients"
    						value="#{clientBean.clients}">
    						<f:selectItem itemLabel="Choisissez un client..."
    							noSelectionOption="true" />
     
    						<f:selectItems value="#{ clientBean.clients }" var="item"
    							itemLabel="#{item.prenom} #{item.nom } " />
     
    					</h:selectOneMenu>
     
    				</h:panelGroup>
     
    			</fieldset>

    je n'arrive pas ecrire le "controller" qui sera apellé dans le panelGroup

    merci d'avance

  7. #7
    Membre averti
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2013
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 269
    Points : 434
    Points
    434
    Par défaut
    En fait le controller dont je parle tu l'as déjà c'est ton "ClientBean".
    Il faut donc que tu mappes ton selectOneRadio à la variable "choixNouveauClient" avec un getter et un setter dans clientBean puis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <h:selectOneRadio styleIdd="choixNouveauClient" required="true" value="#{clientBean.choixNouveauClient}">
      <f:selectItem id="choixnouveauClient" itemLabel="Yes" itemValue="nouveauClient"  />
      <f:selectItem id="choixancienClient" itemLabel="No"	itemValue="ancienClient" />
      <f:ajax render="panelancienClient panelnouveauClient" />
    </h:selectOneRadio>

Discussions similaires

  1. [XL-2010] combobox selon le choix effectué d'un autre combobox
    Par BENNASR dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/12/2014, 16h54
  2. affichage selon liste choix
    Par papagei2 dans le forum Modélisation
    Réponses: 3
    Dernier message: 27/09/2007, 16h32
  3. Affichage d'un résultat selon requête dans formulaire avec date
    Par SMPGSARL dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 06/07/2006, 14h52
  4. affichage selon le choix d'une liste déroulante
    Par cell dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 05/07/2006, 10h16
  5. [FORMULAIRE] affichage selon le choix dans une liste déroulante.
    Par gailup dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 25/06/2006, 14h58

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