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

Ruby on Rails Discussion :

trier un tableau sur les en-tetes de colonnes


Sujet :

Ruby on Rails

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 73
    Points : 67
    Points
    67
    Par défaut trier un tableau sur les en-tetes de colonnes
    Bonjour à tous,

    J'aimerais savoir quel est le meilleur moyen de trier un tableau html sur chaque colonnes (sans faire d'ajax), le tri devra ce faire de maniere croissante ou décroissante;

    merci pour votre aide

  2. #2
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    sans faire d'AJAX, ça veut dire que tu recharges la page à chaque fois, mais c'est pas grave.

    La solution, c'est de mettre deux petits boutons (croissant et décroissant) en haut de tes colonnes, et de faire un link_to dessus, en passant en paramètre le nom de la colonne ainsi que le sens (ASC / DESC)

    tu récupères ces paramètres dans ton action, et tu fait ta requête dans ton modèle en précisant le :order :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    @return_values = Users.find :all, :order=>"#{params[nom_champs]} #{params[sens]}"


    Attention, si tu fait ça dans la même action que ton listing initial, pense à gérer le cas où il n'y a pas de paramètres
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 40
    Points : 42
    Points
    42
    Par défaut
    Pourquoi veux-tu absolument éviter de NE PAS rafraichir ta page ? C'est dommage surtout que tu pourrais preload ta table en javascript et la trier sans avoir à faire à chaque fois une requete sur ta BDD

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 652
    Points
    652
    Par défaut
    Ajax permet de requeter la BDD et d'envoyer les résultats dans la page courante, sans avoir besoin de rafraichir la totalité de la page. C'est bien, mais ça fait quand meme un acces serveur.
    Alors un acces serveur pour recharger juste le tableau (Ajax), ou un acces serveur pour tout recharger, c'est toujours un acces serveur.
    La solution Javascript est la meilleure, une fois que les données sont chargées dans la page, le poste client n'a pas en théorie, besoin d'un serveur, pour afficher de telle ou telle façon.
    Maintenant, pour faire un tri de tableau en javascript, plein de gens l'ont déja fait, il existe tout un tas de variantes de scripts... A toi de chercher celui qui correspond à ton besoin.
    ( Ca dépend par exemple si tu dois trier des chiffres ou des lettres ou des dates, etc...)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 73
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par Feustine Voir le message
    Pourquoi veux-tu absolument éviter de NE PAS rafraichir ta page ? C'est dommage surtout que tu pourrais preload ta table en javascript et la trier sans avoir à faire à chaque fois une requete sur ta BDD
    bah ... je me dis que c'est surement plus facile de recharger la page et plus facile a maintenir (peut etre a tord )

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 73
    Points : 67
    Points
    67
    Par défaut
    je recherche par ailleurs des exemples ultra simple de liste triable sur en-tete de colonne (sans images qui indique le sens du tri, juste un lien Asc qui devient DESC si on clic dessus).

    apparement c difficile a trouver , il n'ya que des exemples ajax.

  7. #7
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    ma piste ne te va pas ? il n'y a que ça à faire, pas de solution miracle, faut le faire à la mimine, mais c'est pas le bout du monde, loin de là...

    c'est juste que dans l'action qui affiche ton tableau, faut gérer un paramètre optionnel ASC ou DESC, et changer ta requête si un de ces deux params est passé... grosso modo, ça doit pas te rajouter plus de 6 lignes (utilises un case, y'a que 3 cas à gérer et hop !)
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 73
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par titoumimi Voir le message
    ma piste ne te va pas ? il n'y a que ça à faire, pas de solution miracle, faut le faire à la mimine, mais c'est pas le bout du monde, loin de là...

    c'est juste que dans l'action qui affiche ton tableau, faut gérer un paramètre optionnel ASC ou DESC, et changer ta requête si un de ces deux params est passé... grosso modo, ça doit pas te rajouter plus de 6 lignes (utilises un case, y'a que 3 cas à gérer et hop !)
    c'est en fait en niveau du lien que j'ai un souci


    il faut faire un truc du genre link_to "departement", :action="list", apres je seche pour préciser la class appliquer au lien et passer le parametre ( plusieurs dans le cas présent le champ et l'ordre)

    qu'est ce que j'ai du mal avec la doc rails

  9. #9
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    link_to 'ASC', :action=>'ton_action', :order=>'ASC', :autre_param=>'tata'
    dans ton action, tu récupéreras params[:order] et params[:autre_param]
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 172
    Points : 219
    Points
    219
    Par défaut
    Bonjour,
    Un peu hors sujet...
    Mais si ça peut vous aider, j'ai utilisé le lien suivant lorsque j'ai voulu faire des tableaux... La marche à suivre est assez bien développée pour démarrer :

    http://dev.nozav.org/rails_ajax_table_fr.html

    Evidemment c'est de l'Ajax (ammoniaqué)... Mais désajaxifier la partie trie n'est pas difficile. Suffit (a priori) de remplacer le link_to_remote par un link_to, non ?

    Côme

  11. #11
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 652
    Points
    652
    Par défaut
    Tsss allez je suis sympa, j'ai cherché à ta place, et voici un résultat :
    http://www.kryogenix.org/code/browser/sorttable/

    Franchement j'ai hésité à le donner, parceque :
    1) Rien à voir avec Rails ou Ruby
    2) C'est plus facile et plus rapide de chercher soi meme que d'attendre que les autres trouvent à ta place, je ne te rends pas service en donnant direct la solution.
    Mais bon allez, c'est pas grave, si t'as besoin d'aide, on n'est quand meme pas des sauvages

    @Côme => Hey dis donc ça à l'air pas mal du tout ton lien, je vais osculter ça de + prés ! Merci

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

Discussions similaires

  1. Trier une Map sur les valeurs de façon décroissante
    Par ddams dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 27/12/2011, 19h33
  2. Trier un tableau sur la valeur
    Par mathias59 dans le forum Langage
    Réponses: 2
    Dernier message: 02/02/2011, 20h57
  3. Trier un tableau sur un élément bien précis
    Par Sanceray3 dans le forum Langage
    Réponses: 5
    Dernier message: 09/09/2009, 15h24
  4. [Tableaux] Trier un tableau sur 2 élements!
    Par GYK dans le forum Langage
    Réponses: 5
    Dernier message: 09/12/2008, 16h30
  5. Réponses: 8
    Dernier message: 14/11/2007, 11h27

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