ExtJS JSON декодировать - PullRequest
       7

ExtJS JSON декодировать

0 голосов
/ 22 июня 2010
 function symbol_handler(){
   fp.getForm().submit({
     url:'/index.php/ajax/test_function',
       success:function(resp){
       //how would i access attributes of the json object?
     }
 });

edit: вот php-контроллер, если он уместен.

 function test_function(){
 $array = array(
    'success' => 'true',
    'msg' => 'testing testing testing'
    );
  echo json_encode($array);

}

вывод console.log (соответственно) с

    function symbol_handler(){
     fp.getForm().submit({
         url:'/index.php/ajax/test_function',
         success:function(resp){
            console.log(resp);
         }
     });
   }

...

Object
activeAction: null
bodyStyle: "padding: 6px"
buttons: Array (1)
0: Object
handler: function symbol_handler(){
hideParent: true
minWidth: 75
removeMode: "container"
text: "GO"
__proto__: Object
length: 1
__proto__: Array
el: Object
events: Object
frame: true
height: 100
id: "ext-gen48"
items: Object
labelWidth: 40
title: "Exercising textfields"
width: 300
__proto__: Object

Спасибо, Брэндон

Ответы [ 2 ]

2 голосов
/ 22 июня 2010

Подпись обратного вызова success: function(form, action), где form - ссылка на отправляемую форму, а action - отправленный объект действия. Это либо экземпляр Ext.form.Action.Submit, либо Ext.form.Action.DirectSubmit (в зависимости от того, использовали ли вы Ext.direct). Объект action предоставляет доступ к множеству свойств, среди которых свойство result, которое содержит декодированный объект ответа. Итак, ваш код ExtJS должен выглядеть так:

function symbol_handler(){
   fp.getForm().submit({
       url:'/index.php/ajax/test_function',
       success:function(form, action){
          console.log(action.result);
       }
   });
}
1 голос
/ 22 июня 2010

в соответствии с API extjs 3.2.1 (я не знаю, какую версию вы используете), функции успеха передаются следующие параметры:

  1. форма: Ext.form.BasicForm Форма который запросил действие
  2. action: Ext.form.Action Класс Action. Свойство результата этот объект может быть исследован выполнить пользовательскую постобработку.

Попробуйте добавить следующее к функции успеха, чтобы узнать, какие аргументы передаются в функцию:

console.log(arguments);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...