extjs json解码

时间:2010-06-22 01:42:16

标签: php ajax json extjs

 function symbol_handler(){
   fp.getForm().submit({
     url:'/index.php/ajax/test_function',
       success:function(resp){
       //how would i access attributes of the json object?
     }
 });

编辑:这是php控制器,如果它是相关的。

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

}

使用

输出console.log(resp)
    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

谢谢,brandon

2 个答案:

答案 0 :(得分:2)

success - 回调的签名为function(form, action),其中form是对提交表单的引用,action是已提交的操作对象。它可以是Ext.form.Action.SubmitExt.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 :(得分:1)

根据extjs 3.2.1 API(我不知道你使用的是哪个版本),成功函数传递了以下参数:

  
      
  1. form:Ext.form.BasicForm表单   请求采取行动
  2.   
  3. action:Ext.form.Action Action类。的结果属性   可以检查这个对象   执行自定义后处理。
  4.   

尝试将以下内容添加到success函数中,以了解函数中传递的参数:

console.log(arguments);