probleme avec un javascript

probleme avec un javascript - HTML/CSS - Programmation

Marsh Posté le 15-07-2002 à 18:09:34    

Voila le script qui me pause probleme sous mozilla/netscape mais po sous ie.
Si queql'un sait comment le corriger (un seul champs s'affiche au lieu de 2)
 
   

Code :
  1. <select name="cat_select" size="1" onChange="setInd(this)">
  2.     <option value="41" selected>Vehicules</option>
  3.     <option value="50">Collections</option>
  4.     <option value="51">Jeux Jouets Figurines</option>
  5.     <option value="52">Culture</option>
  6.     <option value="53">Loisirs Vacances</option>
  7.     <option value="54">Maison et Jardin</option>
  8.     <option value="55">Téléphonie</option>
  9.     <option value="56">Tv Hifi Video</option>
  10.     <option value="57">Vetements, Textiles</option>
  11.     <option value="58">Informatique</option>
  12.     <option value="99">Cinéma, Vidéos et DVD</option>
  13.   </select>
  14.   </td>
  15.  </tr>
  16.  <tr>
  17.   <!-- sous categorie -->
  18.   <td align="left" width="100%" colspan="2">
  19.    <font class="normal"><b>Sous Catégorie*</b></font>
  20.   </td>
  21.   <td>
  22.    <font class="normal"><b>:</b></font>
  23.   </td>
  24.   <td valign="bottom" align="left">
  25.  
  26.  
  27.  
  28.    <div id="test"></div>
  29.    
  30.   <script language="Javascript">
  31.    var option = new Array(
  32.   "41;43;Deux Roues"
  33.    
  34.   ,"41;44;Voiture"
  35.    
  36.   ,"41;46;Bateaux"
  37.    
  38.   ,"41;47;Transport"
  39.    
  40.   ,"41;48;Camping Car, Caravane"
  41.    
  42.   ,"41;49;Autres"
  43.    
  44.   ,"50;59;Timbres"
  45.    
  46.   ,"50;60;Monnaies"
  47.    
  48.   ,"50;61;Cartes Postales"
  49.    
  50.   ,"50;62;Autres"
  51.    
  52.   ,"51;63;Jeux Videos, Consoles"
  53.    
  54.   ,"51;64;Jouets Enfants"
  55.    
  56.   ,"51;65;Jeux Société"
  57.    
  58.   ,"51;66;Autres"
  59.    
  60.   ,"52;67;Livres"
  61.    
  62.   ,"52;68;Bande Dessinée"
  63.    
  64.   ,"52;69;Revues"
  65.    
  66.   ,"52;70;Art"
  67.    
  68.   ,"52;71;Autres"
  69.    
  70.   ,"53;72;Location"
  71.    
  72.   ,"53;73;Voyage"
  73.    
  74.   ,"53;74;Equipement"
  75.    
  76.   ,"53;75;Jeux de Plage"
  77.    
  78.   ,"53;76;Accessoires de sports"
  79.    
  80.   ,"53;77;Autres"
  81.    
  82.   ,"54;78;Outils"
  83.    
  84.   ,"54;79;Décoration"
  85.    
  86.   ,"54;80;Mobilier"
  87.    
  88.   ,"54;81;Autres"
  89.    
  90.   ,"55;82;Portable"
  91.    
  92.   ,"55;83;Fixe"
  93.    
  94.   ,"55;84;Sans Fil"
  95.    
  96.   ,"55;85;Autres"
  97.    
  98.   ,"56;86;Télévision"
  99.    
  100.   ,"56;87;Magnétoscope"
  101.    
  102.   ,"56;88;Lecteur DVD"
  103.    
  104.   ,"56;89;Matériel Audio"
  105.    
  106.   ,"56;90;Autres"
  107.    
  108.   ,"57;91;Habits Homme"
  109.    
  110.   ,"57;92;Habits Femme"
  111.    
  112.   ,"57;93;Habits Enfant"
  113.    
  114.   ,"57;94;Autres"
  115.    
  116.   ,"58;95;Ordinateur"
  117.    
  118.   ,"58;96;Périphériques"
  119.    
  120.   ,"58;97;Composants"
  121.    
  122.   ,"58;98;Autres"
  123.    
  124.   ,"99;100;Dvd Zone 1"
  125.    
  126.   ,"99;101;Dvd Zone 2"
  127.    
  128.   ,"99;102;VHS"
  129.    
  130.   ,"99;103;Laserdisc"
  131.    
  132.   ,"99;104;VCD"
  133.    
  134.   ,"99;105;Autres"
  135.    
  136.    );
  137.    var cpt1,cpt2,cpt3,parent,id,titre;
  138.    var c = "<select name='ss_cat_select' size='1'>";
  139.    for (i=0; i < option.length;i++)
  140.    {
  141.     cpt1 = option[i].indexOf(';');
  142.     parent = option[i].substr(0,cpt1);
  143.     cpt2 = option[i].lastIndexOf(';');
  144.     id = option[i].substr(cpt1+1,cpt2-3);
  145.     titre = option[i].substr(cpt2+1);
  146.     if (parent == '41')
  147.     {
  148.      if (id == '')
  149.      {
  150.       c = c+"<option value='"+id+"' selected>"+titre+"</option>";
  151.      }
  152.      else
  153.      {
  154.       c = c+"<option value='"+id+"' >"+titre+"</option>";
  155.      }
  156.     }
  157.    }
  158.    c = c+"</select>";
  159.    test.innerHTML=c;
  160.    function setInd(ind)
  161.    {
  162.     var cpt1,cpt2,cpt3,parent,id,titre;
  163.     var c = "<select name='ss_cat_select' size='1'>";
  164.     for (i=0; i < option.length;i++)
  165.     {
  166.      cpt1 = option[i].indexOf(';');
  167.      parent = option[i].substr(0,cpt1);
  168.      cpt2 = option[i].lastIndexOf(';');
  169.      id = option[i].substr(cpt1+1,cpt2-3);
  170.      titre = option[i].substr(cpt2+1);
  171.      if (parent == ind.value)
  172.      {
  173.       c = c+"<option value='"+id+"'>"+titre+"</option>";
  174.      }
  175.     }
  176.     c = c+"</select>";
  177.     test.innerHTML=c;
  178.    }
  179.   </script>


Message édité par kakou le 15-07-2002 à 18:10:13
Reply

Marsh Posté le 15-07-2002 à 18:09:34   

Reply

Marsh Posté le 15-07-2002 à 18:13:17    

t'es gentil mais tu pourais au moins marquer l'erreur :sarcastic:


---------------
All we need is a soul revolution
Reply

Marsh Posté le 15-07-2002 à 18:21:25    

l'erreur on le voit quand ca s'execute sous ie on voit bien deux champs de selection dont le deuxieme est deduit du premier et sous mozilla/netscape, un seul

Reply

Marsh Posté le 15-07-2002 à 19:08:05    

quelle horreur ... tu pourrais au moins debugger un minimum et isoler ce qui plante.
 
eg pour récupérer un élément, c'est document.getElementById(). test.machin ne marche que sous ie.

Reply

Marsh Posté le 15-07-2002 à 19:33:22    

moi je n'ai qu'un chose a dire php powaaaa
tu fais une table mysql ou mm un fichier texte et tu mets un  
Header("" ) qui envoie ta premiere cat en variable et qui l'affiche au rechargement de la page ou un truc dans le genre ou alors si tu es grave un fana de JavaScript tu fais un parent.location


Message édité par fripouille le 15-07-2002 à 19:33:59
Reply

Marsh Posté le 16-07-2002 à 09:08:26    

bé c'est un script générer par net.data avec une base db2.
et c'est po moi qui la fait :) mais je dois corriger le site

Reply

Marsh Posté le 16-07-2002 à 10:40:25    

  <!-- sous categorie -->
   <td align="left" width="100%" colspan="2">
    <font class="normal"><b>Sous Catégorie*</b></font>
   </td>
   <td>
    <font class="normal"><b>:</b></font>
   </td>
   <td valign="bottom" align="left">
 
----------------------------------
 
il te manque un </td> voir un </table> voir un </tr> ... enfin verifie tout ce bordel, comme tu fous du JavaScript en plein milieu de la definition d un tableau, c pas super super clean comme code

Reply

Marsh Posté le 16-07-2002 à 10:54:22    

ok je vais vérifier ce truc

Reply

Marsh Posté le 20-07-2002 à 00:58:38    

Je pense que innerHTML ne fonctionne qu'à partir de NS6 et encore pas sûr, en gros ton 2éme combo (le bout de code HTML qui lui correspond) est bien créé mais ne peut être affiché !
 
essaye plutot ca :
 

Code :
  1. <script language="Javascript">
  2. function buildCombo(){
  3. var i, arrTemp;
  4.   var option = new Array(
  5.   "41;43;Deux Roues"
  6.    
  7.   ,"41;44;Voiture"
  8.    
  9.   ,"41;46;Bateaux"
  10.    
  11.   ,"41;47;Transport"
  12.    
  13.   ,"41;48;Camping Car, Caravane"
  14.    
  15.   ,"41;49;Autres"
  16.    
  17.   ,"50;59;Timbres"
  18.    
  19.   ,"50;60;Monnaies"
  20.    
  21.   ,"50;61;Cartes Postales"
  22.    
  23.   ,"50;62;Autres"
  24.    
  25.   ,"51;63;Jeux Videos, Consoles"
  26.    
  27.   ,"51;64;Jouets Enfants"
  28.    
  29.   ,"51;65;Jeux Société"
  30.    
  31.   ,"51;66;Autres"
  32.    
  33.   ,"52;67;Livres"
  34.    
  35.   ,"52;68;Bande Dessinée"
  36.    
  37.   ,"52;69;Revues"
  38.    
  39.   ,"52;70;Art"
  40.    
  41.   ,"52;71;Autres"
  42.    
  43.   ,"53;72;Location"
  44.    
  45.   ,"53;73;Voyage"
  46.    
  47.   ,"53;74;Equipement"
  48.    
  49.   ,"53;75;Jeux de Plage"
  50.    
  51.   ,"53;76;Accessoires de sports"
  52.    
  53.   ,"53;77;Autres"
  54.    
  55.   ,"54;78;Outils"
  56.    
  57.   ,"54;79;Décoration"
  58.    
  59.   ,"54;80;Mobilier"
  60.    
  61.   ,"54;81;Autres"
  62.    
  63.   ,"55;82;Portable"
  64.    
  65.   ,"55;83;Fixe"
  66.    
  67.   ,"55;84;Sans Fil"
  68.    
  69.   ,"55;85;Autres"
  70.    
  71.   ,"56;86;Télévision"
  72.    
  73.   ,"56;87;Magnétoscope"
  74.    
  75.   ,"56;88;Lecteur DVD"
  76.    
  77.   ,"56;89;Matériel Audio"
  78.    
  79.   ,"56;90;Autres"
  80.    
  81.   ,"57;91;Habits Homme"
  82.    
  83.   ,"57;92;Habits Femme"
  84.    
  85.   ,"57;93;Habits Enfant"
  86.    
  87.   ,"57;94;Autres"
  88.    
  89.   ,"58;95;Ordinateur"
  90.    
  91.   ,"58;96;Périphériques"
  92.    
  93.   ,"58;97;Composants"
  94.    
  95.   ,"58;98;Autres"
  96.    
  97.   ,"99;100;Dvd Zone 1"
  98.    
  99.   ,"99;101;Dvd Zone 2"
  100.    
  101.   ,"99;102;VHS"
  102.    
  103.   ,"99;103;Laserdisc"
  104.    
  105.   ,"99;104;VCD"
  106.    
  107.   ,"99;105;Autres"
  108.    
  109.   );
  110.   for (i=0;i<document.frm.ss_cat_select.options.length;i++){
  111. document.frm.ss_cat_select.options[0] = null; 
  112. }
  113. for (i=0; i < option.length;i++) {
  114. arrTemp = option[i].split(";" );
  115. if (arrTemp[0]==document.frm.cat_select.options[document.frm.cat_select.selectedIndex].value)
  116.  document.frm.ss_cat_select.options[document.frm.ss_cat_select.options.length]  = new Option(arrTemp[2],arrTemp[1]);
  117. }
  118. }
  119. </script>
  120. <html> <body onload="buildCombo()">
  121. <form name="frm">
  122. <table><tr><td>
  123. <select name="cat_select" size="1" onChange="buildCombo()">
  124.    <option value="41" selected>Vehicules</option>
  125.    <option value="50">Collections</option>
  126.    <option value="51">Jeux Jouets Figurines</option>
  127.    <option value="52">Culture</option>
  128.    <option value="53">Loisirs Vacances</option>
  129.    <option value="54">Maison et Jardin</option>
  130.    <option value="55">Téléphonie</option>
  131.    <option value="56">Tv Hifi Video</option>
  132.    <option value="57">Vetements, Textiles</option>
  133.    <option value="58">Informatique</option>
  134.    <option value="99">Cinéma, Vidéos et DVD</option>
  135. </select>
  136.   </td>
  137. </tr>
  138. <tr>
  139.   <!-- sous categorie -->
  140.   <td valign="bottom" align="left">
  141.     <select name='ss_cat_select' size='1'>
  142. <!--Mettre assez de nbsp; pour que la combo soit assez large--> <option>              </option>
  143. </select>
  144.    
  145.    
  146.    <div id="test"></div>
  147.      </td>
  148. </tr>
  149. </table>
  150. </body>
  151. </html>


Message édité par asc le 20-07-2002 à 01:01:29
Reply

Marsh Posté le 20-07-2002 à 01:16:02    

InnerHtml ne fonctionne que sous IE donc normal que ça marche pas.
Solution ? Killer Netscape...

Reply

Marsh Posté le 20-07-2002 à 01:16:02   

Reply

Marsh Posté le 23-07-2002 à 13:28:03    

ok merci je vais tester

Reply

Sujets relatifs:

Leave a Replay

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