extJS. Свой select с данными из базы
Собственно, как создать свой combobox на extJS при этом дёргая в него данные из базы?
Вот код, который я накодил и зашёл в тупик:
В процессоре /mgr/settings/get.class.php вот такой код:
Вот код, который я накодил и зашёл в тупик:
hostPanel.combo.version = function(config) {
config = config || {};
Ext.applyIf(config, {
store: new Ext.data.JsonStore({
id: 0,
autoLoad: true,
fields: ['value'],
url: hostPanel.config.connector_url,
baseParams: {
action: 'mgr/settings/get',
name: 'version',
},
}),
mode: 'remote',
displayField: 'value',
valueField: 'value',
triggerAction: 'all',
listeners: {
success: {
fn: function () {
console.log('success')
}, scope: this
},
error: {
fn: function () {
console.log('error')
}, scope: this
},
},
});
hostPanel.combo.version.superclass.constructor.call(this,config);
};
Ext.extend(hostPanel.combo.version, MODx.combo.ComboBox);
Ext.reg('hostpanel-combo-version', hostPanel.combo.version);В процессоре /mgr/settings/get.class.php вот такой код:
<?php
class hostPanelSettingsGetProcessor extends modObjectGetProcessor {
public $objectType = 'hostPanelSettings';
public $classKey = 'hostPanelSettings';
public function process()
{
$limit = trim($this->getProperty('limit', 10));
$name = $this->getProperty('name');
$c = $this->modx->newQuery($this->classKey);
$c->select('value');
$c->where(array('name' => $name));
$c->limit($limit);
if( $c->prepare() && $c->stmt->execute() ) {
$res = $c->stmt->fetchAll(PDO::FETCH_ASSOC);
}
else { $res = array(); }
return $this->outputArray($res);
}
}
return 'hostPanelSettingsGetProcessor'; Комментарии: 8
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Не могли бы вы для примера опубликовать рабочий вариант без ошибок. И еще вопрос, файл процессора, насколько я понимаю должен лежать в дирректории /core/components/имя_компонента/processors/mgr/в_моем_случае_item_вместо_settings?
Чтото еще должно быть?
Есть таблица городов: code, name, вкоторой code — что то типа spb, msk, ykb и т.д. name — имена.
Из этой таблички надо взять данные для подстановки code в другую таблицу избранных адресов.
Для таблицы городов создан компонент на основе modExtra (соответственно и процессор GetList для него уже есть)
Для рендеринга нашего комбобокса пишем такой код:
Где — путь к коннектору другого компонента (города)
а — указание процессора getlist
Сам процессор чтения списка менять не пришлось.
Как выяснилось, ошибка у топик-стартера была в том, что вот эту часть кода
нужно было заменить на