(HELP ! ) Tri par ordre Alphabétique AJAX (Help ! )

Tri par ordre Alphabétique AJAX (Help ! ) (HELP ! ) - Javascript/Node.js - Programmation

Marsh Posté le 26-01-2018 à 16:28:28    

Bonjour les amis !  
 :cry:  :cry:  
Depuis le code (voir dessous)  
Je voudrais trier le select par ordre alphabétique du Nom : (element.Nom)  
 
 
function selector(value, row, index) {
    var select_id = "X_select_" + row.id;
    var select =  $("<select/>", {"id":select_id}).append($("<option/>" , {"disabled":"disabled", "selected":"selected"}).val('').text('').html('-'));
    $.get("/planning-json/bind/json/mesListes/getListeSuivi.json?suiviId="+row.id, adresse(data){
        $.each(data, function(index, element){
            $("#" + select_id).append($("<option/>" ).val(element.id).text(element.Nom));
        });
    });
    return $("<p/>" ).append(select).html();
}
 
 
Milles merci !

Reply

Marsh Posté le 26-01-2018 à 16:28:28   

Reply

Marsh Posté le 26-01-2018 à 18:05:59    

Bonjour,

 

Pourquoi ne pas passer le contenu de data dans un array et effectuer un tri sur cet array puis parcourir ce dernier pour afficher tes options du select ?


Message édité par MaybeEijOrNot le 26-01-2018 à 18:06:08

---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 27-01-2018 à 16:45:55    

Salut MaybeEijOrNot,
 
Merci pour ta rapide réponse!
 
Aurais tu un exemple de code pour que je puisse m'en inspirer ?
 
Thanks  :jap:

Reply

Marsh Posté le 27-01-2018 à 17:16:55    

Euh non désolé mon clavier est en japonnais, du coup je ne peux pas écrire de code. :s


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 31-01-2018 à 10:29:36    

Alors la réponse m'intéresse parce qu'en ce moment j'ai un souci un peu près équivalent.
J'ai remarqué qu'un array associatif dont la key est un entier ne se tri pas comme j'aimerais. En gros si j'ai ça :
{ 3 : "Brazil", 1: "Canada", 2 : "USA" };

 

Quoi que je fasse, il me restitue toujours Canada, USA, Brazil même après avoir tenté un tri alpha sur les pays.

 

Alors que ça :
{ "trois" : "Brazil", "un" : "Canada", "deux" : "USA" };
me restitue Brazil, Canada, USA si je le tri...

 

Bref j'ai l'impression que le fait que la clé soit un entier change le fonctionnemnt de mon tableau. S'il y a moyen d'éviter ça, ça m'intéresse.


Message édité par Twiddy le 31-01-2018 à 10:30:31
Reply

Marsh Posté le 31-01-2018 à 12:01:54    

Ne pas confondre tableau et objet.
 
Comme dit sur cette page : https://www.w3schools.com/js/js_arrays.asp il n'y a pas de tableau associatif en JS. On utilise des objets à la place et ça n'a donc pas de sens de trier un objet.
Il faut donc transformer son objet en tableau pour pouvoir le trier :
 

Code :
  1. var tab_object = {4:"Brazil", 2:"Canada", 3:"USA"};
  2. var tab_classic = [];
  3. for (var i in tab_object) {
  4.     tab_classic.push([tab_object[i], i]);
  5. }
  6. console.log(tab_object);
  7. console.log(tab_object.length);
  8. console.log(tab_classic.sort());
  9. console.log(tab_classic.length);


 
On remarquera que de la même manière que ça n'a pas de sens de trier un objet, on ne peut en déterminer une longueur.
Afin de garder en mémoire la clé on utilise un tableau multidimensionnel.

Reply

Marsh Posté le 31-01-2018 à 14:37:00    

Han, c'est pour ça... :jap:
Même si c'est con parce qu'au final si je tente {"4":"Brazil", "2":"Canada", "3":"USA"}; il ne réagit pas comme si je lui mettais  {"d":"Brazil", "b":"Canada", "c":"USA"};


Message édité par Twiddy le 31-01-2018 à 15:09:09
Reply

Marsh Posté le 31-01-2018 à 18:56:39    

Normalement il ne devrait pas du tout réagir, enfin si il devrait te retourner une erreur.
 
Je viens de tester chez moi, ça ne marche pas, tu ne peux pas faire de tri sur les propriétés d'un objet. Comment as-tu fait? :pt1cable:  
Sinon cela ne sert à rien de mettre des guillemets aux noms des propriétés des objets et normalement ce n'est pas non plus autorisé d'utiliser un nom commençant par un chiffre (mêmes règles que pour les variables).


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

Marsh Posté le 01-02-2018 à 10:24:12    

Non mais laisse tomber, j'avais pas fait gaffe que dans le code, l'objet était transformé en enum... Et forcément, je ne pigeait plus rien :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed