根据opencart

时间:2016-09-30 10:17:43

标签: php jquery json textarea opencart

我向DB添加了一个新列,用于在Opencart中为属性添加说明,我可以轻松地从管理面板添加/编辑说明,但我在product_form页面中遇到问题。我想在选择属性名称时自动为每个产品添加属性描述。 在Opencart中,管理员可以从自动完成框中选择产品的属性,但每次管理员都应手动添加属性描述。例如属性' Gold'。管理员每次选择属性' Gold'他必须手动添加黄金描述。我想从DB列' protext'中检索属性描述。管理员时自动填写相关的textarea。因此,当选择' Gold'来自输入框的相关文本应出现在相关的textarea中以供描述。

这是我以产品形式编辑但不起作用的代码。 我们将非常感谢您的帮助。

function attributeautocomplete(attribute_row) {
    $('input[name=\'product_attribute[' + attribute_row + '][name]\']').autocomplete({
        'source': function(request, response) {
            $.ajax({
                url: 'index.php?route=catalog/attribute/autocomplete&token=<?php echo $token; ?>&filter_name=' +  encodeURIComponent(request),
                dataType: 'json',           
                success: function(json) {
                    response($.map(json, function(item) {
                        return {
                            category: item.attribute_group,
                            label: item.name,
                            label2: item.protext,                           
                            value: item.attribute_id                            
                        }
                    }));
                }
            });
        },
        'select': function(item) {                      
            $('input[name=\'product_attribute[' + attribute_row + '][name]\']').val(item['label']);
            $('input[name=\'product_attribute[' + attribute_row + '][attribute_id]\']').val(item['value']);             
            $('input[name=\'related\']').val('');
        }
        $('textarea[name=\'product_attribute[' + attribute_row + '][product_attribute_description][text]\']').autocomplete({
            'append': function(item) {
            $('textarea[name=\'product_attribute[' + attribute_row + '][product_attribute_description][text]\']').val(item['protext']);
            }
    }); 
}

1 个答案:

答案 0 :(得分:0)

为此,您必须更改ajax返回结果的Controller文件中的代码。路径管理&gt;控制器&gt;目录&gt;属性 - &gt; function autocomplete()。在名称行之后或在您想要的任何其他键之后添加“protext”代码(我写了1以便您可以在文件中找到代码并且可以在此之后添加)

'name'            => strip_tags(html_entity_decode($result['name'], ENT_QUOTES, 'UTF-8')),

'protext'          => html_entity_decode($result['protext'], ENT_QUOTES, 'UTF-8'),

这是怎么回事,你会在tpl文件中得到这个。

  • 数据库已经使用*获取,因此您无需更改任何代码。
  • 您已经为tpl添加了代码,因此它可以正常工作。

注意 - 最好使用vqmod或ocmod进行这些更改。我的OC版本2.0.2.0