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) :
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
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>
L'erreur est "form is not defined".
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"; } } }
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
Partager