Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ExtJs и Store, Ответ  
:(
    Опции темы
virtualmacar
Дата 3.12.2009, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 11.9.2009

Репутация: нет
Всего: нет



Дамы и Господа вопрос мой не сложен и не прост))) собственно есть 
Код

func = function() 
    {
      store.load({params: {"foo": Ext.get('grweek').dom.value}});
    
    }

Усё тут очевидно гружу я сторе который берет данные которые возвращает ему скрипт ПХП 
Как мне обработать ответ от PHP скрипта ? ПХП скрипт в случае успеха возвращает данные echo "Bla bla bla" а если ошибка то echo "Error"
PM MAIL   Вверх
comtat
Дата 3.12.2009, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: 5
Всего: 71



Мой Вам совет используйте Ext.Ajax.request если ожидаете ответом простые данные
Для варианта со Ext.data.JsonStore можно сделать так 
Код

p_store = new Ext.data.JsonStore({
    root    : 'params',
    totalProperty: 'total',
    ...
    listeners: {
        'load': {
            fn: function(){
                _data = p_store.reader.jsonData;
                // Далее необходимая обработка
            }
        }
    },
    ...
}



--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
virtualmacar
Дата 3.12.2009, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 11.9.2009

Репутация: нет
Всего: нет



несколько другая ситуация у меня 
вот так описан store
Код

 var store = new Ext.data.Store({
        
        url: 'Ps/wektest.php',

      
        reader: new Ext.data.XmlReader({
           
               record: 'row',
               id: 'ASIN',
               totalRecords: '@total'
           }, [
           
               {name: 'row', mapping: 'ItemAttributes > row'},
               'p1', 'p2', 'p3','name_Farm','p4','p5','p6','p7','p8','p9','p10','p11','p12','p13','p14','p15','p16','p17','p18'
           ])
         
 
    });

а в PHP 
Код

......
$inputDom = new DomDocument();
$inputDom->validateOnParse = true;
$inputDom->loadXML($res);
......
echo $inputDom->saveXML(); Вот это выводит результат для XML Readera 


Т.е я не использую напрямую Json.. результат выполнения запроса это XML в виде текста которым я грид кормлю

Т.е когдя я загружаю Store я обращаюсь к PHP скрипту... всё получается.. но так как не давно на ExtJs не пойму ни как.. куда блин мне втулить 
Код

 success: function(){Ext.Msg.alert('Результат', 'Данные успешно получены');},
       failure : function(){Ext.Msg.alert('Результат', 'Извините сбой сиситемы попробуйте позже');}     


PM MAIL   Вверх
comtat
Дата 7.12.2009, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: 5
Всего: 71



Это не особо принципиально
сам javascript скрипт
Код

<html>
<head>
    <link rel="stylesheet" type="text/css" href="resources/css/ext-all.css"/>
    <script type="text/javascript" src="ext-base.js"></script>
    <script type="text/javascript" src="ext-all.js"></script>
</head>
<body>
<script>
Ext.onReady(function(){
    var store = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
            url    : 'ff.xml',
            method: 'GET'
        }),
        reader: new Ext.data.XmlReader({
            record    : 'row',
            totalRecords: 'results'
            }, ['id']
        ),
        listeners: {
            load    : function(store, records, options){
                if (store.dataLength == 0)
                    Ext.Msg.alert('Error', 'Извините сбой сиситемы попробуйте позже');
                else {
                    Ext.Msg.alert('Info', 'Данные успешно получены');
                }
            }
        }
    });
    store.load({params:{start:0, limit:25}});
});
</script>
</body>
</html>

ff.xml
Код

<?xml version="1.0" encoding="UTF-8"?>
<dataset>
 <results>2</results>
 <row>
   <id>1</id>
   <name>Bill</name>
   <occupation>Gardener</occupation>
 </row>
 <row>
   <id>2</id>
   <name>Ben</name>
   <occupation>Horticulturalist</occupation>
 </row>
</dataset>


Вроде и все. Тестировал на v.2.3.0. 


--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
Daphne
Дата 12.1.2012, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 12.1.2012

Репутация: нет
Всего: нет



а что, если store.dataLength == 0 это значит произошел сбой?
а если у меня возвращается 0 строк и это не ошибка, а результат выполненного запроса?

делаю так
Код

store.load({
    params: {...},
    callback: function(success) {
        if (success) 
            Ext.MessageBox.show({
                title: 'Информация',
                msg: 'Данные успешно получены!',
                buttons: Ext.MessageBox.OK,
                icon: Ext.MessageBox.INFO
            })
        else Ext.MessageBox.show({
                title: 'Ошибка',
                msg: 'Cбой запроса попробуйте позже!',
                buttons: Ext.MessageBox.OK,
                icon: Ext.MessageBox.ERROR
            });
    }
});




Это сообщение отредактировал(а) Daphne - 12.1.2012, 10:29
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.0786 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.