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

JavaScript Discussion :

Le tri d'un tableau qui contient des input text


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 26
    Points : 32
    Points
    32
    Par défaut Le tri d'un tableau qui contient des input text
    Salut j'ai un exercice qui demande la création d'un tableau en permettant l’utilisateur de préciser le nombre de colonnes et lignes , et de mettre des input dedans pour permettre la modification du contenu de chaque colonne.et aussi de créer un button pour le trie des valeurs du tableau... j'ai rencontré un problème avec le trie , l'idée que j'ai essayer de faire c'est de transformer le tableau (2 dimension) en un tableau à une dimension puis le trier et de le transformer en matrice (la méthode marche aussi si le tableau a une seule dimension) mais la fonction de trie ne marche pas comme il faut , voici le code:
    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
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
     
    <html>
    <head>
    <script type="text/javascript"> 
    <!--
     function Table() {
     var l=document.F1.lg.value;
    var c=document.F1.cl.value;
    var i;
    var j; 
     
     
    for(i=1;i<=l;i++){
    		var line=document.createElement("tr");
    		for(j=1;j<=c;j++){var cel=document.createElement("td");
    							var zt=document.createElement("input");
    								zt.type="text";
    								zt.id="z"+i+j;
    								zt.size=3;
    								cel.appendChild(zt);
    								line.appendChild(cel)
    							                         }
    						  document.getElementById("tb1").appendChild(line);
     
    						  }
    }
     
    function GetColumn() {var c=document.F1.cl.value; return c;}
    function GetLine() {var s=document.F1.lg.value; return s;}
    function Trie() {var a=0;
                     var tab = new Array();
    				 var i=0;
    				 var j=0;
    				 var k=0;
    				 var col=GetColumn()
    				 var lin=GetLine()
    				 for (k=1;k<=lin;k++)
    				 { for (j=1;j<=col;j++)
    				 {var ch="z"+k+j;
     
    				 tab[a]=document.getElementById(ch).value;
     
    				  a+=1;}
    				 }
    			     for (i=0;i<tab.length-1;i++)
    				 {
    				 for(j=1;j<tab.length;j++)
    				 {
    				 if (tab[i]>tab[j])
    				 {
    				 var x=tab[i];
    				 tab[i]=tab[j];
    				 tab[j]=x;
    				  }
    				 }
    				 }
                     var w=0;
                     for (k=1;k<=lin;k++)
    				 { for (j=1;j<=col;j++){
    				 var yn="z"+k+j;
    				 var changer=document.getElementById(yn);
     
    				 changer.value=tab[w];
    				 w+=1;
    				 }
    				 }
    				 }
     
     
     
    -->
    </script>
    </head>
    <body >
    <Form name="F1">
    Tracer une table:<br>
    Donner le nombre de lignes:<input type="text" size="2" maxlength="2" name="lg" defaultValue="2"> <br>
    Donner le nombre de colonnes:<input type="text" size="2" maxlength="2" name="cl" defaultValue="2"> <br>
    Donner la couleur du contour:<SELECT NAME="list"> 
    <OPTION VALUE="1">Rouge
    <OPTION VALUE="2">Vert 
    <OPTION VALUE="3">bleu 
    </SELECT>
    <input type="button"  name="Tr" value="Tracer" onClick="Table()"><br>
     
    <input type="button"  name="Bt1" value="Trier" onClick="Trie()"><br>
     
     
    </Form>
    <Table id="tb1" border=1  ></Table>
    </body>
    </html>

  2. #2
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    Salut !

    C'est un beau "fouillis", je pense que tu y gagnerais à mieux indenter, organiser, renommer, coder sous les bonnes conventions ton code.

    Dans l'idée, j'aurais plutôt dissocié le fait de construire les données de les dessiner.
    - Faire un tableau javascript qui stocke les valeurs des input
    - Faire une fonction permettant de dessiner une table html en agrémentant les input des données préalablement renseignées
    - Faire une fonction de tri simplement directement sur le tableau javascript. Ta fonction qui dessine le tableau est ensuite réutilisée

    Pour le tri, j'en vois plusieurs différents. Par ligne ? Par colonne ? Ascendant ? Descendant ?
    j'ai rien compris à :
    j'ai rencontré un problème avec le trie , l'idée que j'ai essayer de faire c'est de transformer le tableau (2 dimension) en un tableau à une dimension puis le trier et de le transformer en matrice

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 26
    Points : 32
    Points
    32
    Par défaut Le tri d'un tableau qui contient des input text
    Le problème que j'ai c'est que j'ai pas précisé le type des données du tableau , il a trier le tableau qui contient des chiffres numérique , en tant que caractères... j'ai remplacé le blog dans la fonction concernant le trie avec la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for (i=0;i<tab.length;i++){
     for(j=i+1;j<tab.length-1;j++){
     if (tab[i]>tab[j])
     {var x=tab[i];
      tab[i]=tab[j];
      tab[j]=x;}
     }
     }
    avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function sortfunction(a, b){
    return (a - b) //causes an array to be sorted numerically and ascending
    }
    Tab.sort(sortfunction)
    je vais le marqué comme résolu!

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

Discussions similaires

  1. Encoder un tableau PHP en JSON qui contient des fonctions JS
    Par Spartacusply dans le forum Langage
    Réponses: 2
    Dernier message: 11/09/2014, 12h07
  2. Réponses: 8
    Dernier message: 23/05/2012, 20h24
  3. comment fermer un site qui contient des framesets
    Par zana74 dans le forum Langage
    Réponses: 6
    Dernier message: 20/08/2006, 16h45
  4. insertin d'une chaine qui contient des guillemets
    Par karimspace dans le forum Access
    Réponses: 7
    Dernier message: 13/02/2006, 11h55
  5. Afficher sous Word des données SQL qui contient des retours
    Par samoht dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 30/09/2005, 16h12

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