Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.10.2010, 00:48
Аспирант
Отправить личное сообщение для DenQ Посмотреть профиль Найти все сообщения от DenQ
 
Регистрация: 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'
            }
        ]
    });

ЗЫ. На самом деле я перебрал уже довольно много вариантов, и потратил очень много времени. Может быть в самой сторе что-то не так... Надеюсь на вашу помощь.
Ответить с цитированием
  #2 (permalink)  
Старый 25.10.2010, 08:37
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

{success: true, total: 500, results: [{id: 1, name: "foo"}, {id: 2, name: "bar"}]}
Ответить с цитированием
  #3 (permalink)  
Старый 25.10.2010, 11:21
Аспирант
Отправить личное сообщение для DenQ Посмотреть профиль Найти все сообщения от DenQ
 
Регистрация: 28.08.2010
Сообщений: 57

Спасибо.
Но работает частично. Проблема в ридере. Если ридер убрать, а его содержимое оставить, то все работает.

Последний раз редактировалось DenQ, 25.10.2010 в 11:53.
Ответить с цитированием
  #4 (permalink)  
Старый 25.10.2010, 14:39
Аватар для cmygeHm
Профессор
Отправить личное сообщение для cmygeHm Посмотреть профиль Найти все сообщения от cmygeHm
 
Регистрация: 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' }
                ]
    });
Ответить с цитированием
  #5 (permalink)  
Старый 25.10.2010, 15:10
Аспирант
Отправить личное сообщение для DenQ Посмотреть профиль Найти все сообщения от DenQ
 
Регистрация: 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();
Ответить с цитированием
  #6 (permalink)  
Старый 26.10.2010, 08:51
Аватар для cmygeHm
Профессор
Отправить личное сообщение для cmygeHm Посмотреть профиль Найти все сообщения от cmygeHm
 
Регистрация: 12.10.2010
Сообщений: 196

Просто в этом куске кода:
proxy : new Ext.data.HttpProxy({
            url         : 'index.php',
            method      : 'POST',
        }),

убери строки
proxy : new Ext.data.HttpProxy({
и последнюю.
и будешь более модным Работать тоже будет.
Ответить с цитированием
  #7 (permalink)  
Старый 26.10.2010, 12:53
Аспирант
Отправить личное сообщение для DenQ Посмотреть профиль Найти все сообщения от DenQ
 
Регистрация: 28.08.2010
Сообщений: 57

cmygeHm,
Ды и сейчас уже все работает...
Ответить с цитированием
  #8 (permalink)  
Старый 02.11.2010, 23:49
Аватар для Ex_Soft
Профессор
Отправить личное сообщение для Ex_Soft Посмотреть профиль Найти все сообщения от Ex_Soft
 
Регистрация: 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
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск