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 :

[PrimeFaces / Ajax] Liste déroulante et inputtext


Sujet :

JSF Java

  1. #1
    Membre averti
    Inscrit en
    Février 2012
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 39
    Par défaut [PrimeFaces / Ajax] Liste déroulante et inputtext
    Bonjour tout le monde,

    je souhaite mettre à jour un inputext en fonction du choix effectué dans une liste déroulante afin de pouvoir le modifier par la suite.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <h:form id="form">
    	<p:panel header="Modifier">
    		<h:panelGrid columns="2">
    			<p:selectOneMenu value="#{monBean.data.id}">
    				<f:selectItems id="item"
    					value="#{monBean.datas}" var="c"
    					itemLabel="#{c.nom}" itemValue="#{c.id}" />
    					<p:ajax update="in_text" />  
    			</p:selectOneMenu>
    			<p:inputText id="in_text" value="#{monBean.data.nom}" />		
    		 </h:panelGrid>
    	</p:panel>
    </h:form>
    Ma liste déroulante est bien remplie mais mon inputext ne se met pas à jour.

    Qu'ai-je fait d'incorrect ?

    Merci

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2011
    Messages : 790
    Par défaut
    tu veux q'il soit mise à jour au niveau de la base de données?

  3. #3
    Membre très actif Avatar de omarcisses
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 227
    Par défaut
    Ajoute ça pour voir
    <p:ajax process="@this"

  4. #4
    Membre averti
    Inscrit en
    Février 2012
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 39
    Par défaut
    Citation Envoyé par ahmedpa Voir le message
    tu veux q'il soit mise à jour au niveau de la base de données?
    Non, je veux que le choix fait dans la liste déroulante s'affiche dans le inputext.

    Citation Envoyé par omarcisses Voir le message
    Ajoute ça pour voir
    <p:ajax process="@this"
    J'ai modifié mon code comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <h:form id="form">
    	<p:panel header="Modifier">
    		<h:panelGrid columns="2">
    			<p:selectOneMenu value="#{monBean.data.id}">
    				<f:selectItems id="item"
    					value="#{monBean.datas}" var="c"
    					itemLabel="#{c.nom}" itemValue="#{c.id}" />
    					<p:ajax update="in_text" process="@this" />  
    			</p:selectOneMenu>
    			<p:inputText id="in_text" value="#{monBean.data.nom}" />		
    		 </h:panelGrid>
    	</p:panel>
    </h:form>
    Mais ça ne fonctionne pas

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Par défaut
    Tu ajoutes une balise <p:ajax> dans ton composant selectOneMenu, mais tu ne précises pas le type d'événement déclencheur.

    Je te conseille de rajouter de le modifier ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <p:ajax event="change" update="in_text" process="@this" />
    Si ça ne marche toujours pas, pourrais-tu nous poster le contenu de ton managedBean ?

  6. #6
    Membre très actif Avatar de omarcisses
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 227
    Par défaut
    Citation Envoyé par N4rc0 Voir le message
    Tu ajoutes une balise <p:ajax> dans ton composant selectOneMenu, mais tu ne précises pas le type d'événement déclencheur.

    Je te conseille de rajouter de le modifier ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <p:ajax event="change" update="in_text" process="@this" />
    Si ça ne marche toujours pas, pourrais-tu nous poster le contenu de ton managedBean ?
    Merci car je pensais que c’était évident

  7. #7
    Membre averti
    Inscrit en
    Février 2012
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 39
    Par défaut
    Citation Envoyé par omarcisses Voir le message
    Merci car je pensais que c’était évident
    je me suis basé sur l'exemple de primefaces et il n'y a pas d'évènement...

    j'ai essayé vos solutions et ça ne marche toujours pas

    Voici mon code :
    xhtml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <h:form id="form">
    	<p:panel header="Modifier">
    		<h:panelGrid columns="2">
    			<p:selectOneMenu value="#{monBean.data}" converter="#{dataConverter}">
    				<f:selectItems id="item"
    					value="#{monBean.datas}" var="c"
    					itemLabel="#{c.nom}" itemValue="#{c}" />
    					<p:ajax event="change" process="@this" update="in_text" />  
    			</p:selectOneMenu>
    			<p:inputText id="in_text" value="#{monBean.data.nom}" />		
    		 </h:panelGrid>
    	</p:panel>
    </h:form>
    managedbean :
    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
     
    public class MonBean {
     
    	@EJB
    	private DataFacadeLocal	dataBean;
    	private Data			data;
    	private List<Data>		datas;
     
     
    	public Data getData() {
    		return data;
    	}
     
    	public void setData(Data data) {
    		this.data = data;
    	}
     
    	public List<Data> getDatas() {
    		datas = dataBean.findAll();
    		return datas;
    	}
     
    	public void setDatas(List<Data> datas) {
    		this.datas = datas;
    	}
    }
    Converter :
    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
     
    public class DataConverter implements Converter{
    	@EJB
        private DataFacadeLocal dataBean;
     
        @Override
        public Object getAsObject(FacesContext context, UIComponent component, String value) {
            return dataBean.rechercherData(Long.valueOf(value));
        }
     
        @Override
        public String getAsString(FacesContext context, UIComponent component, Object value) {
        	return ((Data) value).getId().toString();
        }
    }

  8. #8
    Membre très actif Avatar de omarcisses
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 227
    Par défaut
    essaie ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <p:ajax listener="#{bean.change}" render="@form" />

  9. #9
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 162
    Par défaut
    J'avoue n'être jamais passé par un converter, j'utilise les selectOneMenu à "l'ancienne" en utilisant des varaibles contenant l'id de l'objet selectionné.

    Ce qui m'étonne, c'est que tu déclares comme variable d'objet selectionné, un objet de type Data. Mais à aucun moment, je ne vois un morceau de code indiquant que cet objet Data est un élément de la liste Data que tu affiches.

    Peut-être devrais-tu mettre un point d'arrêt dans le setter de ton objet Data, pour savoir : - si il est initialisé
    - si il est initialisé avec les bonnes données
    - si il est initialisé au bon moment

    En fonction de ces réponses, on pourra en déduire la nature du problème.

  10. #10
    Membre averti
    Inscrit en
    Février 2012
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 39
    Par défaut
    Citation Envoyé par omarcisses Voir le message
    essaie ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <p:ajax listener="#{bean.change}" render="@form" />
    Et qu'est ce que je fais dans la méthode change ?

  11. #11
    Membre très actif Avatar de omarcisses
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2007
    Messages : 227
    Par défaut
    désolé je me suis trompé remplace le @this pas @form

  12. #12
    Membre averti
    Inscrit en
    Février 2012
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 39
    Par défaut
    Citation Envoyé par N4rc0 Voir le message
    J'avoue n'être jamais passé par un converter, j'utilise les selectOneMenu à "l'ancienne" en utilisant des varaibles contenant l'id de l'objet selectionné.

    Ce qui m'étonne, c'est que tu déclares comme variable d'objet selectionné, un objet de type Data. Mais à aucun moment, je ne vois un morceau de code indiquant que cet objet Data est un élément de la liste Data que tu affiches.

    Peut-être devrais-tu mettre un point d'arrêt dans le setter de ton objet Data, pour savoir : - si il est initialisé
    - si il est initialisé avec les bonnes données
    - si il est initialisé au bon moment

    En fonction de ces réponses, on pourra en déduire la nature du problème.
    Effectivement, la méthode à "l'ancienne" marche bien. C'était donc bien un problème avec mon converter. j'vais m'y pencher dessus pour comprendre d'où venait le problème.

    ps : je n'ai pas utilisé d'event ni de render.

  13. #13
    Invité de passage
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1
    Par défaut recuperation des valeurs sélectionnées par l'utilisateur
    Bonsoir,
    je veux recuperer les valeurs des composants primfaces pour l'inserer dans le bd
    voici le code jsf

    <p:panel header="Sortie Filiere" toggleable="true" id="panel">
    <h:panelGrid columns="2" cellpadding="5">

    <h:outputLabel value="Diametre:" for="acSimple" />
    <p:column>
    <p:autoComplete value="#{filiereCtrl.diametre}" >
    <f:attribute name="diametr" value="#{filiereCtrl.diametre}"/>
    </p:autoComplete></p:column>
    <h:outputLabel value="Nom Agent:" for="dd" />
    <p:selectOneMenu id="dd" value="#{personneCtrl.personne}">
    <f:selectItems value="#{personneCtrl.persnneList}" var="emp"
    itemLabel="#{emp.nom} #{emp.prenom}" />
    <f:param name="agent" value="#{emp.nom} #{emp.prenom}"/>
    </p:selectOneMenu>
    <h:outputLabel value="Ligne de production:" />
    <p:selectOneMenu value="#{mcCtrl.machine}">
    <f:selectItems value="#{mcCtrl.listMAchine}" var="emp"
    itemLabel="#{emp.nomMachine} " />
    </p:selectOneMenu>
    <h:outputText value="Date de Sortie" />
    <p:calendar effect="slide" />
    <h:outputText value="Demandeur" />
    <h:inputText ></h:inputText>
    <h:outputLabel for="nb" value="nombres de filières: " />
    <p:spinner id="nb"
    value="#{mvCtrl.number3}" min="0" max="100"/>


    </h:panelGrid>
    </p:panel>

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

Discussions similaires

  1. [2.x] Ajax listes déroulantes liées
    Par dubitoph dans le forum Symfony
    Réponses: 33
    Dernier message: 11/02/2014, 10h56
  2. Réponses: 8
    Dernier message: 14/05/2009, 22h54
  3. [AJAX] Listes déroulantes liées
    Par Jiraiya42 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 14/04/2008, 09h58
  4. [AJAX] Liste déroulante et tableau
    Par Ludodor dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/02/2008, 11h52
  5. [AJAX] Liste déroulante qui ne s'actualise pas avec XMLHttpRequest
    Par zoom61 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 14/11/2006, 09h52

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