Ric*_*o M 5 javascript product configurable magento prototypejs
我需要将可配置产品的选项显示为div,并在其中带有“ a”,以便用户在选项中单击并选择它,而不是下拉列表。就像菜单一样(目标是显示鞋子的尺码)。
众所周知,Magento使用Json响应来填充下拉菜单的选项。(var spConfig = new Product.Config(getJsonConfig()?>),并且该类位于js / varien / product.js(Product.Config = Class.create())中。
然后,我要做的是编辑文件template / catalog / product / view / type / options / configurable.phtml并将类似的原始行为替换。
'<?php
echo '
<ul class="super-attribute-select">';
$resultado = json_decode($this->getJsonConfig(), true);
$atributo=$resultado['attributes'][162]['options'];
foreach($atributo as $att){
echo '<li>';
echo '<a value="'.$att['id'].'" price="'.$att['price'].'" href="javascript:void()" onclick="return assignValue()">'.$att['label'].'</a>';
echo '</li>';
}
echo ' </ul>
<div class="clear"></div>';
?>'
Run Code Online (Sandbox Code Playgroud)
这个简单的模块让我替换了由div组成的小网格的菜单。现在,我正在尝试制作一个模仿本机行为的Javascript函数,但仅针对所选选项(在本例中为鞋码)。据我了解,代码通过表单发送选项值,所以我的想法是创建一个隐藏的输入,然后在用户单击时通过Javascript函数分配该值,如下所示:
'<script>
function assignValue(value){
//assign the value
document.getElementById('super_attribute[162]').value = value;
//mod the class of the selected item
this.addClassName("selected");
</script>'
Run Code Online (Sandbox Code Playgroud)
我认为可能有必要创建一个函数或调用一个方法,使magento已经必须获得所需的值。甚至我都不知道在隐藏的输入上设置类“ required-entry”是否是一个好主意。
请问你能帮帮我吗?任何帮助或其他想法将不胜感激。
这里有一个代码片段。太简单了=)!!...
<script type="text/javascript">
function assignValue(idattribute,price,value){
var sal = new String(value); //this value is what you are showing to the user in the div grid
var disp = new String(idattribute);
$('nameinputhidden').value=disp;
$('advice-required-entry-attribute').fade();
$$('.nameinputhidden').each(
function(e){
e.removeClassName('active');
}
)
$(sal).addClassName('active');
</script>
Run Code Online (Sandbox Code Playgroud)
并且不要忘记将输入值隐藏起来。该输入值必须是您在网格上显示的属性。
希望这可以帮助。如果我能帮助你,请告诉我!
问候!
| 归档时间: |
|
| 查看次数: |
4761 次 |
| 最近记录: |