15.11.2010, 16:23
|
Аспирант
|
|
Регистрация: 28.08.2010
Сообщений: 57
|
|
Не передается id группы, на сервер
Эх, братцы , наверно замучал я вас уже своими вопросами...
В общем дело такое, есть формочка, у ней есть поле/я в виде комбобокса, из сторы нам приходят такие поля как 'id' & 'name_group'. Для показа name_group 'мы' используем displayValue, а для отправки id`шника valueField. Но на сервер уходят только текстовые значения(название группы), а нужно чтобы ее id.
Вот такая вот проблемка. Я думаю многие из вас сталкивались с подобной уже, и надеюсь на вашу помощь...
Ниже привожу код:
{
border : true,
xtype : 'combo',
store : getStore('group_disk'),
mode : 'local',
valueField : 'id',
displayField : 'name_group',
triggerAction : 'all',
fieldLabel : 'Группа диска',
allowBlank : false,
name : 'GROUP_DISK'
},
|
|
15.11.2010, 20:54
|
Профессор
|
|
Регистрация: 24.09.2010
Сообщений: 178
|
|
Вообщем это типичный баян, используй
hiddenName : String
If specified, a hidden form field with this name is dynamically generated to store the field's data value (defaults to the underlying DOM element's name). Required for the combo's value to automatically post during a form submission. See also valueField.
|
|
16.11.2010, 07:36
|
Аспирант
|
|
Регистрация: 28.08.2010
Сообщений: 57
|
|
VKS, наверное ты меня неверно понял. Мне не нужно что бы имя поля изменилось, мне нужно чтобы содержимое отправлялось, не то что мы видим, а id его из сторы.
т.е. если в комбобокс приходит массив вида
id, name_group
1, 'qwe',
2, 'wer',
3, 'ert'
то,
При выборе варианта(а пользователь будет видеть только 'qwe', 'wer', 'ert'), на сервер будет отправляться id(1,2 или 3), соответствующий данному тексту.
т.е. если я выбрал 'wer', то на сервер отправится число 2. Ловить на сервере это дело будем так $_REQUEST['GROUP_DISK'], и там должно быть наше число...
Проблема в том как раз что отправляется не число, а текстовое значение.
ЗЫ. извиняюсь за дотошность...
|
|
16.11.2010, 10:37
|
Профессор
|
|
Регистрация: 24.09.2010
Сообщений: 178
|
|
When you use Ext JS’s ComboBox, if you don’t set hidden name or id, it send display field value, not value field. To handle this, it has to be set. Be careful about uniqueness of the hidden name, for more details you can check Ext JS ComboBox’s documantation
var unitField = new Ext.form.ComboBox({
id:'unitField',
name: 'unit',
fieldLabel: 'Unit',
store:unitStore,
mode: 'remote',
displayField: 'name',
valueField: 'id',
hiddenName : 'unitId',
allowBlank: false,
anchor:'95%',
triggerAction: 'all'
});
|
|
16.11.2010, 18:03
|
Аспирант
|
|
Регистрация: 28.08.2010
Сообщений: 57
|
|
VKS, да это наверное все же мои палки. Спасибо за помощь!
Мне сейчас просто некогда толком вникать в документацию. Как бы это не звучало парадоксально, но это так. Вот и получается что вопросов много, да еще и ответы не сразу доходят. Вот проект доделаю, тогда вникну полностью. К тому же логика уже построена, фундамент заложен, все самое трудное позади, так что уже скоро
Вот так я сделал:
{
hiddenName : 'GROUP_DISK',
xtype : 'combo',
store : getStore('group_disk'),
mode : 'local',
valueField : 'id',
displayField : 'name_group',
triggerAction : 'all',
fieldLabel : 'Группа диска',
allowBlank : false,
name : 'GROUP_DISK'
},
ЗЫ. Жаль что на плюсик не получается нажать...
Последний раз редактировалось DenQ, 16.11.2010 в 18:06.
|
|
|
|