动态下拉列表根据答案显示唯一文本

时间:2013-04-02 23:19:25

标签: php javascript html magento

我正在使用Magento并使用他们的自定义选项功能。我有一些工作代码但后来当我添加第二个产品时发现每个自定义选项的“值”增加,因为它只是在DB中分配的自动增量ID。

我希望stackoverflow的优秀人员可以帮我找到一种方法来显示每个自定义选项的自定义文本。

从这里开始是由Magento生成的选择:

        <select name="options[6]" id="select_6" 
class=" required-entry product-custom-option" title=""
onchange="opConfig.reloadPrice();displayCondition();">
<option value="" >-- Please Select --</option>
<option value="13" >Perfect </option>
<option value="25" >Excellent </option>
<option value="15" >Good </option>
<option value="24" >Poor </option>
<option value="17" >Broken </option></select> 

这是我目前的Javascript

    <script language="javascript">
   function displayCondition() {
condition = new Array("Please Select a Condition.",
"<b>Perfect:</b> Text to explain perfect condition!",
"<b>Excellent:</b> Text to explain excellent condition!",
"<b>Good:</b> Text to explain good condition!",
"<b>Poor:</b> Text to explain poor condition!",
"<b>Broken:</b> Text to explain broken condition!"); 
     var getsel = document.getElementById('select_<?php echo $_option->getId();?>').price;
     document.getElementById("divId").innerHTML = condition[getsel];
   }
</script>

最后是它显示在

中的div
    <div id="divId" name="divName" style="width:100%; text-align:center; color:#FFFFFF; margin-top:25px;"></div>

我对所有建议持开放态度,甚至为了更好的方法而废弃这些建议。请记住,就每个选项而言,我不能改变太多以及生成的代码中显示的内容。我找不到合适的文件来添加其他选项(即名称或标题)谢谢


开始尝试这个,我觉得它很有希望。有些事情是不对的,因为它仍然没有显示任何东西。

    <script language="javascript">

   function showConditions(sel){   
locations =[ "", /*this remains blank for first selection in drop-down list*/ 
/*option 1*/                 
"<b>Perfect</b> Blah Blah ",
/*option 2*/                
"<b>Excellent</b> Blah Blah ",
/*option 3*/                 
"<b>Good</b> Blah Blah ",
/*option 4*/                 
"<b>Poor</b> Blah Blah",
/*option 5*/                 
"<b>Broken</b> Blah Blah", ];
               srcLocation = locations    [sel.selectedIndex];        
if (srcLocation != undefined && srcLocation != "") {
document.getElementById('divId').innerHTML= srcLocation;   
} 
}
</script>

onchange="opConfig.reloadPrice();showConditions(this);"

1 个答案:

答案 0 :(得分:0)

我在底部玩的代码让它发挥作用。我有一个额外的</div>标签,导致它无法显示。乌兹!