Problème d'affichage tableau dynamique sous FF

dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012 - 22 déc. 2006 à 13:10
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012 - 22 déc. 2006 à 14:49
Bonjour,

Est-ce que quelqu'un pourrait me dire si il y a une erreur quelconque qui pourrait causer des problèmes d'affichage sous FireFox (alors que sous Internet Explorer c'est parfait) ?
(si il y a d'autres remarques concernant mon code, à par que tout est regroupé dans un seul fichier, je suis preneur)

<script language="JavaScript">
<!--
var nb_lignes_DI;
var cptr_lignes;
var tbody_lignes_DI;
var tableau_lignes_DI = new Array(50);
for(var l=0; l<50; l++)
 tableau_lignes_DI[l] = new Array(5);


function init()
{
 tbody_lignes_DI = document.getElementById('tbody_lignes_DI');
 cptr_lignes = 0;
 nb_lignes_DI = 0;
 
}




function change(){           
    var choix = document.getElementById('choix');
    if(choix.value == 'affiche_pas')
     for(var k=0;k<nb_lignes_DI;k++)
     {
         var ligne = document.getElementById(tableau_lignes_DI[k][0]);
            ligne.style.display = 'none';
        }
    if(choix.value == 'affiche')
     for(var k=0;k<nb_lignes_DI;k++)
        {
            var ligne = document.getElementById(tableau_lignes_DI[k][0]);
            ligne.style.display = 'block';
        }
}


function ajouter_ligne()
{
 // ajout de la ligne au tableau
 tableau_lignes_DI[nb_lignes_DI][0] = "ligne"+cptr_lignes;
 tableau_lignes_DI[nb_lignes_DI][1] = "ceci est la description n"+cptr_lignes;
 tableau_lignes_DI[nb_lignes_DI][2] = 1000;
 tableau_lignes_DI[nb_lignes_DI][3] = 1;
 tableau_lignes_DI[nb_lignes_DI][4] = tableau_lignes_DI[nb_lignes_DI][2]*tableau_lignes_DI[nb_lignes_DI][3];
 
 // création de la nouvelle ligne
 var nouvelle_ligne = document.createElement("tr");
 nouvelle_ligne.setAttribute("id",tableau_lignes_DI[nb_lignes_DI][0]);
 nouvelle_ligne.style.display = "block";
 
  // description
     nouvelle_cellule = document.createElement("td");
     text_cellule = document.createTextNode(tableau_lignes_DI[nb_lignes_DI][1]);
     nouvelle_cellule.setAttribute("align","left","false");
     nouvelle_cellule.appendChild(text_cellule);
     // ajout de la cellule description à la ligne
     nouvelle_ligne.appendChild(nouvelle_cellule);
    
     // prix unitaire
     nouvelle_cellule = document.createElement("td");
     text_cellule = document.createTextNode(tableau_lignes_DI[nb_lignes_DI][2]+" ?");
     nouvelle_cellule.setAttribute("align","right","false");
     nouvelle_cellule.appendChild(text_cellule);
     // ajout de la cellule prix unitaire à la ligne
     nouvelle_ligne.appendChild(nouvelle_cellule);
    
     // quantité
     nouvelle_cellule = document.createElement("td");
     text_cellule = document.createTextNode(tableau_lignes_DI[nb_lignes_DI][3]);
     nouvelle_cellule.setAttribute("align","right","false");
     nouvelle_cellule.appendChild(text_cellule);
     // ajout de la cellule quantité à la ligne
     nouvelle_ligne.appendChild(nouvelle_cellule);
    
     // prix
     nouvelle_cellule = document.createElement("td");
     text_cellule = document.createTextNode(tableau_lignes_DI[nb_lignes_DI][4]+" ?");
     nouvelle_cellule.setAttribute("align","right","false");
     nouvelle_cellule.appendChild(text_cellule);
     // ajout de la cellule prix à la ligne
     nouvelle_ligne.appendChild(nouvelle_cellule);
     
     // supprimer
     nouvelle_cellule = document.createElement("td");
     lien = document.createElement("a");
     lien.setAttribute("href","javascript:supprimer_ligne("tbody_lignes_DI",""+tableau_lignes_DI[nb_lignes_DI][0]+"")");
     text_cellule = document.createTextNode("suppr");
     lien.appendChild(text_cellule);
     nouvelle_cellule.appendChild(lien);
     nouvelle_cellule.setAttribute("align","center","false");
     // ajout de la cellule supprimer à la ligne
     nouvelle_ligne.appendChild(nouvelle_cellule)
    
    
    // ajout de la ligne au tableau
    tbody_lignes_DI.appendChild(nouvelle_ligne);
   
    cptr_lignes++;
    nb_lignes_DI++;
}


function supprimer_ligne(parent, child)
{
 // suppression dans le tableau html
 var obj = document.getElementById(parent);
 var old = document.getElementById(child);
 obj.removeChild(old);


 // suppression dans le tableau javascript
 for(var l=0; l<nb_lignes_DI; l++)
 {
  if(tableau_lignes_DI[l][0]==child)
  {
   for(l;l<(nb_lignes_DI-1);l++)
   {
    tableau_lignes_DI[l][0]=tableau_lignes_DI[l+1][0];
    tableau_lignes_DI[l][1]=tableau_lignes_DI[l+1][1];
    tableau_lignes_DI[l][2]=tableau_lignes_DI[l+1][2];
    tableau_lignes_DI[l][3]=tableau_lignes_DI[l+1][3];
    tableau_lignes_DI[l][4]=tableau_lignes_DI[l+1][4];
   }
   nb_lignes_DI--;
   break;
  }
 }
}
// -->
</script>


<html>
<head>
<title></title>
</head>




<select style="width:265px;" id="choix" name="liste_choix" onchange="change()">
 <option value="affiche" selected="selected">Afficher</option>
 <option value="affiche_pas">Ne pas afficher</option>
</select>


<CENTER>
 
 ----

  Description,
  Prix unitaire,
  Quantité,
  Prix,
  Suppression,
 
 
 
 

</CENTER>

  

</html>

Merci d'avance

2 réponses

cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
22 déc. 2006 à 14:27
Bonjour




Oui, ce sont tes display:block qui causent soucis

Cordialement
Roro webDev
0
dmk04 Messages postés 206 Date d'inscription samedi 29 octobre 2005 Statut Membre Dernière intervention 7 mars 2012
22 déc. 2006 à 14:49
Merci pour ta réponse,

j'ai changé le display:block par visibility:visible et none par hidden. Ca m'a enlevé un bug sous FF, ça a modifier un peu sous IE aussi (mais rien d'anormal, quand je fait ne pas afficher on voit un blanc parce que l'on cache, alors qu'avec display:none il tassait).
Sous FF il me reste toujours les "bug" suivant :
- les textes ne sont pas dans les bonnes colonnes (tout entassé au debut de la ligne)
- lorsque je supprime un élément, c'est comme si je l'avait caché, le tableau ne se retasse pas, il reste une ligne blanche...)

Merci
0
Rejoignez-nous