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

PHP & Base de données Discussion :

[PHP] Choix du tri sur les colonnes


Sujet :

PHP & Base de données

  1. #1
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut [PHP] Choix du tri sur les colonnes
    Salut,

    Je cherche le meilleur moyen pour afficher la possibilité de trier les résultats par ordre alphabétique.
    Faut-il faire un formulaire avec un submit pour chaque colonne ?
    En fait, je cherchais à avoir deux choix possibles ascendant et descendant sur chaque colonne...

    merci d'avance
    -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
    Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
    Pensez également à cocher

    Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

    Dimension Internet

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 254
    Points : 304
    Points
    304
    Par défaut
    La solution pour ce genre de problème, je l'ai réalisé en javascript. Je charge la requête de la db en php dans un array javascript et j'affiche le contenu de cet array dans la page avec en haut de colonne, le nom de chaque champ avec à côté un petit triangle pointant vers le bas. Si on clic sur le triange ou sur le nom du champ, une fonction javascript est appelée, change l'orientation du triangle, retrie l'array selon le champ choisi et réaffiche la liste triée. Comme il n'y a pas de modification de données, il n'est pas nécessaire de reloader la page.
    Voici une partie de mon code (tri de nom de fichiers et de dossiers, le script fait le tri sur d'autres parametres mais j'ai volontairement enlevé cette partie du code puisque similaire à ceci)(Attention ce code n'est pas directement fonctionnel, des adaptations seront nécessaires, c'est le principe que j'énonce ici)
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    <SCRIPT language="javascript">
    <!--
    var listedefichiers = new Array;
    var NOM_ASC = 0;
    var NOM_DESC = 1;
    function toggle_tri_nom() 
    {
    	tri_nom = !tri_nom;
    	if(tri_nom)
    	{
    		tri(NOM_DESC);
    		MM_swapImage('triangle_nom','','img/UP.jpg',1);
    	}
    	else
    	{
    		tri(NOM_ASC);
    		MM_swapImage('triangle_nom','','img/DOWN.jpg',1);
    	}
    }
    function tri(ordre) 
    {
    	switch(ordre)
    	{
    		case NOM_DESC:
    			listedefichiers.sort(tri_desc_par_nom);
    		break;
    		case NOM_ASC:
    			listededossiers.sort(tri_asc_par_nom);
    			listedefichiers.sort(tri_asc_par_nom);
    		break;
    	}
    }
    function tri_asc_par_nom(a,b) 
    {
    	if(!a.dossier)//Les dossier doivent être en premier
    	{
    		if(b.dossier)
    			return -10;
    	}
    	else
    	{
    		if(!b.dossier)
    			return 10;
    	}
    	if(a.nom.toLowerCase()<b.nom.toLowerCase())// comparaison de 2 dir ou 2 fichiers
    	 	return(-1); 
    	if(a.nom.toLowerCase()>b.nom.toLowerCase())// comparaison de 2 dir ou 2 fichiers
    	 	return(1); 
    	else
    		return(0);
    }
    function tri_desc_par_nom(a,b) 
    {
    	if(!a.dossier)//Les dossier doivent être en premier
    	{
    		if(b.dossier)
    			return 10;
    	}
    	else
    	{
    		if(!b.dossier)
    			return -10;
    	}
    	if(a.nom.toLowerCase()<b.nom.toLowerCase())// comparaison de 2 dir ou 2 fichiers
    	 	return(1); 
    	if(a.nom.toLowerCase()>b.nom.toLowerCase())// comparaison de 2 dir ou 2 fichiers
    	 	return(-1); 
    	else
    		return(0);
    }
    //-->
    </SCRIPT>
    </HEAD>
    <BODY>
    <?php				
      print("<TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">");
      print("<TBODY>");
      print("<TR>"); 
      print("<TH align=left background=\"img/background.jpg\"><a href=\"javascript:toggle_tri_nom()\"><B><FONT color=\"#006699\">Nom</FONT></B> <img src=\"img/DOWN.jpg\" name=\"triangle_nom\" width=\"9\" height=\"8\" border=\"0\"></a></TH>");
    ?>
    Il reste encore à charger ton Array à partir de tes données en php et à les afficher après chaque tri.
    Quand un problème a une solution, rien ne sert de s'inquiéter. Quand il n'y a pas de solution, s'inquiéter n'arrange rien.

Discussions similaires

  1. [PROC] Tri sur les colonnes pour chaque ligne
    Par san25 dans le forum SAS Base
    Réponses: 2
    Dernier message: 02/10/2013, 11h25
  2. Réponses: 6
    Dernier message: 21/01/2013, 08h30
  3. Question sur les tableaux avec en-têtes fixes et tri sur les colonnes
    Par lolo5935 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 29/07/2010, 15h50
  4. Récupérer les tris sur les colonnes d'un DataGrid
    Par ToniConti dans le forum Flex
    Réponses: 4
    Dernier message: 15/02/2010, 16h52
  5. [struts]: Pagination et tri sur les colonnes
    Par sleepy2002 dans le forum Struts 1
    Réponses: 3
    Dernier message: 09/07/2007, 15h16

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