Я пытаюсь загрузить данные json в свой поле со списком с помощью jsonStore. В магазине используется PHP для извлечения данных из терминала.ExtJs 4 - combobox с jsonstore остается пустым
Я вижу, что сервер обрабатывает PHP-запрос и ответ с надлежащими json-данными, но как-то combobox остается пустым.
Соответствующий код:
магазин и ComboBox - выпадающий список находится внутри FormPanel:
var groupsStore= new Ext.data.JsonStore({url:'login.php?action=getGroups',
root: 'entities',
fields: [{name:'groupName', mapping:'groupName'}]
});
LoginWin = function(cfg) {
this.form = new Ext.form.FormPanel({
labelWidth:60, baseCls:'x-plain', autoHeight:true, style:'padding:5px',
items:[
{xtype:'combo', name:'groups', fieldLabel:'Group', store:groupsStore,
displayField:'groupName', valueField:'groupName', emptyText:'Pick group...', mode:'remote', anchor:'95%', allowBlank:false, enableKeyEvents:true, triggerAction:'all', forceSelection:true
, listeners:{keypress:{scope:this, fn:function(fld,e){ if(e.getKey()==e.ENTER) doLogin();}}
}}
]
});
JSON данные, которые возвращаются с сервера:
{"entities":[{"@type":"webGroup","groupId":"1","groupName":"TEST","groupUsers":
[{"groupUserId":"2","groupUserName":"FOO","password":"123456"},
{"groupUserId":"1","groupUserName":"FOO","password":"654321"}],"system":"BLA"},
{"@type":"webGroup","groupId":"2","groupName":"TESTOS","system":"BLA"}]
,"success":"true"}
The PHP код:
function getGroups(){
error_log("API_host: ".$API_host, 0);
global $API_host;
error_log("API_host: ".$API_host, 0);
$url="$API_host/GroupUser/groups";
error_log("url: ".$url, 0);
$jsonData = curl_request($url);
if (!$jsonData) die("{success:false, message:'Connection Error'}");
echo $jsonData;
}
Возможно, данные вернулись с PHP, отличным от JSON? Как я могу это знать? Я ничего не знаю.
Не могу понять, почему он не работает.
Любые идеи кто-нибудь?
Большое спасибо.
Не может понять, что вы имеете в виде. Где должна быть группы? И изменить Groupname к чему? – yanivsh
Я хочу сказать, что конфигурацией «name» в вашем combobox является «группы», которая не является их ответом json.Actuallty ответ отображается на основе конфигурации «имени» компонентов при установке. – Dev
Это не помогло. изменить конфигурацию «name» на «groupName», а также удалить ее. В обеих ситуациях результат будет таким же, данные в поле со списком не являются «displayField» и «valueField», чтобы сделать это сопоставление? – yanivsh