2012-12-06 3 views
1

Je ne peux pas obtenir ce pour travailler dans smarty template (.tpl), même si cela fonctionne très bien lorsque vous utilisez html simple. Lorsque l'utilisateur sélectionne dans la liste déroulante, l'image est remplacée. Qu'est-ce qui se passe dans le modèle est l'image remplacée montre vide, ce qui suggère qu'il ne peut pas trouver le src.Smarty Liste déroulante modifier l'image sur sélectionner

{literal} 
<script> 
function displayResult(selTag) 
{ 
var x=selTag.options[selTag.selectedIndex].text; 
alert("You selected: " + x); 
document.getElementById('temp_image').src='images/'+ x +'.jpg'; 
} 
</script> 
{/literal} 

<div class="configoptions"> 
{foreach from=$configurableoptions item=configoption} 
{if $configoption.optiontype eq 1} 
<select name="configoption[{$configoption.id}]" id="configoption[{$configoption.id}]"  onchange="displayResult(this); recalctotals();"> 
{foreach key=num2 item=options from=$configoption.options} 
<option value="{$options.id}"{if $configoption.selectedvalue eq $options.id} selected="selected"{/if}>{$options.name}</option> 
{/foreach} 
</select> 
<br /> 

<img id="temp_image" src="images/templates/{$options.name}.jpg"> 

Répondre

0

vous avez défini {} $ options dans une boucle foreach contenant les éléments de {$ configoption.options} qui contient lui-même des éléments de {configurableoptions $}. Malheureusement, cette définition est hors de portée depuis son extérieur de la foreach boucle:

To (par défaut) affiche le premier élément de {$ options} vous pouvez essayer quelque chose comme ceci:

<img id="temp_image" src="images/templates/{$configurableoptions[0].options[0].name}.jpg"> 
Questions connexes