Tableau javascript

Résolu
Bonjour,

Dans une table, je voudrai ajouter des lignes dans une colonne (en javascript)
Mais comment faut il adapter le tableau
merci
Configuration: Windows XP
Firefox 3.0.4

7 réponses

  1. Yop, Salut

    C'est bon j'ai trouvé un truc pas mal qui fonctionne :
    function supp() {
    var table = document.getElementById('side_bar') ;
    var tableSize = table.rows.length ;
    
    for (var l=0; l<tableSize ; l++)
    {
    alert(tableSize + ' et l= ' + l);
        table.rows[l].deleteCell(Number(document.getElementById("side_bar").value));
    }
    alert('fini'); 
    }


    Je me permet de soulever une problématique (que j'espere que tu sera trouver une soluce). Dans mon body j'ai :
    <body onunload="GUnload()">
    
    <table border=1 id="side_bar" >
    
        </table>
    
    <div id="map" style="width: 900px; height: 550px"></div> 
      </body>

    Je souhaiterai que mon tableau se trouve A DROITE de <div id="map" style="width: 900px; height: 550px"></div>
    J'ai essayé ca :
    <table border=1 id="side_bar" style="position:absolute, right: 560px">

    Mais ca ne bouge pas d'un poil...
    Merci
    1
    1. Bonjour,

      si tu sais déjà combien de ligne tu veux ajouter, il te suffit de faire en sorte de mettre les tr, td en visibility="hidden" et de les passer en visibility="visible" quand tu veux les rendre visible.

      Après si tu veux en rajouter et que tu ne sais pas combien de lignes tu veux rajouter, il va falloir te tourner vers de l'AJAX :D.

      Sauf erreur, bonne chance !
      0
      1. Hello,

        Ceci devrait t'aider ou te guider (code JS) :

        //création d'une nouvelle ligne à la fin de ton tableau
        var row = document.getElementById('maTable').insertRow(-1) ;
        
        //insertion d'une nouvelle cellule à la fin de la ligne créée ci-dessus.
        var col1= row.insertCell(-1) ;
        //insertion d'un contenu texte en gras
        col1.innerHTML = '<strong>blablabla</strong>' ;
        
        //insertion d'une nouvelle cellule à la fin de la ligne créée ci-dessus.
        var col2 = row.insertCell(-1) ;
        //insertion d'un contenu
        col2.innerHTML = 'blablabla2';
        0
        1. BAh tiens je profites d'un expert,

          Est ce que tu saurai comment ajouter des lignes (des td) dans une cellule (= tr) ?
          merci
          0
          1. Re,

            alors petite explication supplémentaire :

            tr = ligne
            td = cellule

            voici le code HTML pour un tableux de 2 lignes avec 2 colones :

            <table id="maTable">
                <tr>
                    <td>ligne 1 col 1</td>
                    <td>ligne 1 col 2</td>
                </tr>
                <tr>
                    <td>ligne 2 col 1</td>
                    <td>ligne 2 col 2</td>
                </tr>
            </table>


            et si tu veux ajouter une ligne à ceux tableaux en JS tu feras comme ceci :

            //création d'une nouvelle ligne à la fin de ton tableau
            var row = document.getElementById('maTable').insertRow(-1) ;
            
            //insertion d'une nouvelle cellule à la fin de la ligne créée ci-dessus.
            var col1= row.insertCell(-1) ;
            //insertion d'un contenu texte en gras
            col1.innerHTML = 'ligne 3 col 1' ;
            
            //insertion d'une nouvelle cellule à la fin de la ligne créée ci-dessus.
            var col2 = row.insertCell(-1) ;
            //insertion d'un contenu
            col2.innerHTML = 'ligne 3 col 2';


            en fait le code insertCell correspond à un td et le insertRow correspond à un tr.

            je ne suis pas sur d'avoir bien compris ta 2ème question, mais j'espère que l'explication ci-dessus t'aidera.
            0
        2. Ah cool merci
          Est ce que tu saurai comment faire, maintenant, pour supprimer toutes les lignes du tableau
          Supprimer le contenue quoi
          J'ai trouvé ca, sur internet, mais y a des trucs non déclaré
          function Supp()	
          { 	
          		tableau.deleteRow(Number(document.getElementById("adr").value));
          		break;   
          }
          

          par exemple "tableau" à quoi cela correspond ?
          Je sais que "adr" est l'id de la table
          Voilà @+ et merci
          0
          1. Voilà :

            var table = document.getElementById('maTable') ;
            var tableSize = table.rows.length ;
            
            //le tableSize permet de faire la boucle sur toutes les lignes, le table.rows.length diminue à chaque
            //suppression, par conséquent, si on l'utilise, on ne supprimera pas toutes les lignes.
            for (var i=0; i<tableSize ; i++)
                linkTable.deleteRow(0) ;
                //il faut pas mettre i dans le deleteRow sinon on aura une erreur dans le genre ArrayIndexOutOfBound 
                //(enfin une exception du genre), alors on boucle sur la première ligne et on la supprime.
            0
        3. Yop Slt!
          Merci pr ton code !!!
          c'est bizarre mais l'éxécution se bloque au niveau de linkTable.deleteRow(0) ;

          function supp() {
          var table = document.getElementById("side_bar");
          var tableSize = table.rows.length ;
          
          for (var k=0; k=(table.rows.length) ; k++)
          {
          alert(tableSize + ' et k= ' + k);   
          linkTable.deleteRow(0) ;
          }   
          alert('fini'); 
          }

          peut-être qu'il n'aime pas linkTable ....

          hmm tu vois le problème ?
          0
          1. Ah si ca fonctionne bien :
            Erreur de syntaxe
            <table border=1 id="side_bar" style="position:absolute; right: 560px">

            Merci pour tout
            0
            1. petite correction de mon code :

              var table = document.getElementById('maTable') ;
              var tableSize = table.rows.length ;
              
              for (var i=0; i<tableSize ; i++)
                  table.deleteRow(0) ;
              


              il fallait remplacer linkTable par table
              0
            2. personnellement j'aurais fait qqch comme :
              <div id="map">
                  <div id="side_bar_container" style="float: right;">
                      <table id="side_bar"></table>
                  </div>
              </div>

              Je crois que ça devrait fonctionner...
              0