miniShop. Замена поля add1 на список
Делаю по аналогии с тегами. Добавил в home.panel.js
miniShop.combo.add1 = function(config) {
config = config || {};
Ext.applyIf(config,{
xtype:'superboxselect'
,allowBlank: true
,msgTarget: 'under'
,allowAddNewData: false
,addNewDataOnBlur : false
,resizable: true
,name: 'add1[]'
,anchor:'100%'
,minChars: 3
,store:new Ext.data.JsonStore({
id:'add1-store'
,root:'results'
,autoLoad: true
,autoSave: false
,totalProperty:'total'
,fields:['value', 'text']
,url: miniShop.config.connector_url
,baseParams: {action: 'mgr/goods/getbrands'}
})
,mode: 'remote'
,displayField: 'text'
,valueField: 'value'
,triggerAction: 'all'
,extraItemCls: 'x-tag'
});
miniShop.combo.add1.superclass.constructor.call(this,config);
};
Ext.extend(miniShop.combo.add1,Ext.ux.form.SuperBoxSelect);
Ext.reg('ms-superbox-add1',miniShop.combo.add1);
В goods.grid.js поменял
,{xtype: 'textfield',name: 'add1',fieldLabel: _('ms.goods.add1'),anchor: '100%'}
на ,{xtype: 'ms-superbox-add1', name: 'add1[]', value: config.record.add1, fieldLabel: _('ms.goods.add1')}
В update.php и create.php поменял
$res->set('add1', $scriptProperties['add1']);
на $res->set('add1', implode(',', $scriptProperties['add1'] ));
И вроде всё работает нормально, данные через запятую сохраняются в базу, но у списка не выставляются значения по-умолчанию. У тегов выставляются, а здесь нет. Чего не хватает?
Комментарии: 2
Думаю, нужно еще и чтобы процессор get выдавал в это поле не строку а массив в таком формате:
Если что-то не получится, смотри внимательно, какие данные приходят в config.record.tags.
array(
array('tag' => 'value1')
array('tag' => 'value2'),
array('tag' => 'value3'),
);
Если что-то не получится, смотри внимательно, какие данные приходят в config.record.tags.
Да, это помогло. И ещё allowAddNewData: true было нужно.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.