Bonjour,

J'ai un petit soucis lors de l'affichage d'un bloc. Je pense que c'est pas grand chose mais je suis bloqu�e...

J'ai 2 listes d�roulantes, 1 pour les couleurs, une pour les tailles. J'ai un tableau optionsArray qui est d�fini gr�ce � un autre script. Il fonctionne de cette mani�re la : dispo d'un produit = optionsArray[couleur][taille].

Je me sert donc des selectedIndex de mes listes comme index du tableau. Le probl�me est que je ne veux pas relaoder la page a chaque changement de valeur, j'ai donc fait comme ca (il y a du smarty au milieu) :

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
<select name="color" size="1"> {/literal}
<OPTION {if $smarty.get.page eq "1"} selected {/if}VALUE="selectColor">Select Color
        {foreach from=$xcp_colorimages item=v}
         <option {if $v.alt eq $product_color and $smarty.get.page ne "1"} selected {/if} value="{$v.alt}">{$v.alt}
        {/foreach}
</select>
 
<select name="size" onchange="if(form.color.selectedIndex == 0) {alert('You must select a color')} else {if(form.size.selectedIndex != 0){toggle('availP'); }}" size="1"> {/literal}
<OPTION {if $size eq ""} selected {/if}VALUE="selectSize">Select Size
       {foreach item=xv from=$xcp_grid_column}
         <option {if $xv eq $size} selected {/if} value="{$xv}">{$xv}
       {/foreach}
     </select>
</td><td id="availP" style="display: none;">
<script type="text/javascript">
<!--
document.write(optionsArray[form.color.selectedIndex][form.size.selectedIndex]);
 
-->
</script>
</td>
et la fonction toggle qui affiche le bloc td :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
 function toggle( targetId ){
  if (document.getElementById){
        target = document.getElementById( targetId );
           if (target.style.display == "none"){
              target.style.display = "";
           } else {
              target.style.display = "none";
           }
     }
  }
L'erreur est "form is not defined".

Si je met le document.write(optionsArray[form.color.selectedIndex][form.size.selectedIndex]);
dans le onchange, ca marche, sauf que ca m'ouvre une autre page avec le contenu.

J'ai �galement essay� document.write("lol"); et l� ca fonctionne, il affiche bien lol dans le bloc.

Je crois comprendre pourquoi ca ne marche pas. Lorsque je charge la page, mes form.color.selectedIndex et form.size.selectedIndex ne sont pas affect�s?

Mais je n'arrive pas a voir comment r�gler le probl�me...

Merci de votre aide.
Deb