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

Grails Java Discussion :

Affichage de données sans recharcher la page - application grails


Sujet :

Grails Java

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2012
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 19
    Points : 10
    Points
    10
    Par défaut Affichage de données sans recharcher la page - application grails
    Bonjour,

    je suis en train de faire une application en grails. Sur ma page gsp, j'affiche un tableau contenant une liste de personnes. Une personne a un id, un nom, prénom, adresse mail,..., et une liste d'habilitations. J'aimerais que lorsqu'on clique sur une ligne du tableau (sur une personne), mes champs en bas de ma page se remplissent. Ces champs correspondent au détail de la personne. J'aimerais donc afficher tous les attributs de cette personne, avec un tableau contenant toutes les habilitations de sa liste.
    Le tout sans recharger la page.

    Quelqu'un a une idée ?

    Merci !

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 218
    Points : 311
    Points
    311
    Par défaut
    Il faut simplement faire une action sur ton controller qui te fasse de l'Ajax et te renvoie les données dont tu as besoin. cf g:remoteLink par exemple.
    Dans ton controller tu renvoies tes données au format JSON et le tour est joué : render mapRetour as JSON.
    Après c'est du javascript classique pour l'afficher dans ta page...

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2012
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    D'accord, merci !

    Tu fais comment du coup pour manipuler ton JSON dans ta fonction javascript ? Et comment tu lui passes ?

    Merci

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 218
    Points : 311
    Points
    311
    Par défaut
    Je te l'ai en partie indiqué :
    Au niveau du controller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    def monObject = monObject.get(params.id.toLong()) 
    def mapRetour = [valide : monObject != null, myObject : monObject....]
    render mapRetour as JSON
    cf http://grails.org/doc/2.2.1/ref/Tags/remoteLink.html pour le remote après c'est de l'Ajax classique donc regarde les tutos ajax, il faut parser la réponse...

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2012
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Ok merci !

    Sinon j'avais trouvé une autre solution.
    J'utilisais dans ma page gsp, g:remoteLink comme tu m'avais dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <g:remoteLink controller="monController" action="monAction" update="monDivAAfficher">monLien</g:remoteLink>
    Ensuite en bas de cette gsp, je fais appel à un template lorsque je clique sur mon lien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <div id="divDetailCollaborateur">
      	<g:render template="monTemplate" model="[maPersonne: maPersonne]" />
    </div>

    Dans mon contrôleur, je récupère mes données et j'affiche mon template (que je remplie avec ces données) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    def maPersonne....
    render(template: 'monTemplate', model:[maPersonne: maPersonne])

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

Discussions similaires

  1. Popup, récupération données sans recharger la page
    Par Devilju69 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/10/2010, 15h22
  2. [MySQL] Insertion dans une base de donnée sans recharger la page?
    Par nadia lydia dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 02/10/2009, 17h43
  3. affichage des données sur une seule page
    Par webdesign77 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 12/03/2009, 23h23
  4. affichage de données sans base de données
    Par tetedeturcq dans le forum ASP.NET
    Réponses: 9
    Dernier message: 21/05/2007, 17h30
  5. Affichage de données sans action ?
    Par SnorkyTouch dans le forum Struts 1
    Réponses: 1
    Dernier message: 12/10/2006, 14h14

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