25.10.2010, 00:48
|
Аспирант
|
|
Регистрация: 28.08.2010
Сообщений: 57
|
|
Какого вида должна быть json-строка?
Приветствую вас добрые программисты
Подскажите пожалуйста, какого вида должна быть json-строка, что бы удовлетворить требования такой вот store:
var store = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url : 'index.php',
method : 'POST'
}),
baseParams :{
ajax : 'yes',
action : 'grid'
},
reader: new Ext.data.JsonReader({
root : 'results',
totalProperty : 'total',
successProperty : 'success',
}),
fields :[
{
name : 'id',
type : 'int',
mapping : 'id'
},
{
name : 'name',
type : 'string',
mapping : 'name'
}
]
});
ЗЫ. На самом деле я перебрал уже довольно много вариантов, и потратил очень много времени. Может быть в самой сторе что-то не так... Надеюсь на вашу помощь.
|
|
25.10.2010, 08:37
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
{success: true, total: 500, results: [{id: 1, name: "foo"}, {id: 2, name: "bar"}]}
|
|
25.10.2010, 11:21
|
Аспирант
|
|
Регистрация: 28.08.2010
Сообщений: 57
|
|
Спасибо.
Но работает частично. Проблема в ридере. Если ридер убрать, а его содержимое оставить, то все работает.
Последний раз редактировалось DenQ, 25.10.2010 в 11:53.
|
|
25.10.2010, 14:39
|
|
Профессор
|
|
Регистрация: 12.10.2010
Сообщений: 196
|
|
Выкинь вообще этот ридер и его друга прокси!
сделай так:
var storage = new Ext.data.JsonStore({
url : 'index.php',
method : 'POST',
root : 'results',
totalProperty : 'totalCount',
successProperty : 'success',
baseParams : {
ajax : 'yes',
action : 'grid'
},
fields: [
{ name : 'id', type : 'int', mapping : 'id' },
{ name : 'name', type : 'string', mapping : 'name' }
]
});
|
|
25.10.2010, 15:10
|
Аспирант
|
|
Регистрация: 28.08.2010
Сообщений: 57
|
|
cmygeHm, я немного поэкспериментировал и пришел к такому решению, правда это уже после того как я наладил работу с БД через PDO(так что извиняюсь за размеры ). Главное что теперь все работает, и можно двигаться дальше.
var storeUsers = new Ext.data.JsonStore({
proxy : new Ext.data.HttpProxy({
url : 'index.php',
method : 'POST',
}),
root : 'results',
totalProperty : 'total',
successProperty : 'success'
,
baseParams:{
ajax : 'yes',
action : 'grid'
},
fields: [
{
name : 'id',
type : 'int',
mapping : 'ID'
},{
name : 'name',
type : 'string',
mapping : 'NAME'
},{
name : 'type',
type : 'string',
mapping : 'TYPE',
},{
name : 'email',
type : 'string',
mapping : 'EMAIL',
},{
name : 'code',
type : 'string',
mapping : 'CODE',
},{
name : 'pass',
type : 'string',
mapping : 'PASS',
},{
name : 'date_reg',
type : 'string',
mapping : 'DATE_REG',
},{
name : 'date_last',
type : 'string',
mapping : 'DATE_LAST',
}
]
});
storeUsers.load();
|
|
26.10.2010, 08:51
|
|
Профессор
|
|
Регистрация: 12.10.2010
Сообщений: 196
|
|
Просто в этом куске кода:
proxy : new Ext.data.HttpProxy({
url : 'index.php',
method : 'POST',
}),
убери строки
proxy : new Ext.data.HttpProxy({
и последнюю.
и будешь более модным Работать тоже будет.
|
|
26.10.2010, 12:53
|
Аспирант
|
|
Регистрация: 28.08.2010
Сообщений: 57
|
|
cmygeHm,
Ды и сейчас уже все работает...
|
|
02.11.2010, 23:49
|
|
Профессор
|
|
Регистрация: 19.12.2009
Сообщений: 164
|
|
Сообщение от DenQ
|
На самом деле я перебрал уже довольно много вариантов, и потратил очень много времени. Может быть в самой сторе что-то не так..
|
По идее - строка тут ни при чем. Кажется Ext.data.JsonReader без fields оказался:
var store = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url : 'index.php',
method : 'POST'
}),
baseParams :{
ajax : 'yes',
action : 'grid'
},
reader: new Ext.data.JsonReader({
root : 'results',
totalProperty : 'total',
successProperty : 'success',
fields :[{
name : 'id',
type : 'int',
mapping : 'id'
}, {
name : 'name',
type : 'string',
mapping : 'name'
}]
})
});
В таких случаях не ленитесь перехватывать сообщения об ошибках (например в Ext.data.HttpProxy exception - там много чего узнать можно)
__________________
"Helo, word!" - 17 errors 56 warnings
|
|
|
|