2012-06-10 23 views
0

改写此问题。访问/解码JSON数据

  1. 用户点击其中他们带到链路上editUser.php?ID = 1(其中ID是用户ID号)
  2. 上文件准备呼叫的功能loadAjaxVals(script, json_action, id);的editUser.php页。该函数位于外部JS库中。脚本和json_action值与此问题无关。该ID是从URL的查询串
  3. 的loadAjaxVals()的ID发送给PHP脚本返回数据以作为json_encoded loadAjaxVals(脚本,json_action,ID)()数据
  4. loadAjaxVals(请求)开出json编码的数据并通过它循环输出结果到editUser.php上的表单。该脚本从JSON编码数据中获取名称值对,该数据将成为表单元素ID和值
  5. 表单已填充并全部完成。

但是我想要第二个位于editUser.php上的脚本来解析JSON并从中提取一段数据。

我不知道如何访问JSON或解析JSON。

+0

我无法重现您的问题。看看我的测试:http://jsfiddle.net/vHp8j/ –

+0

嗯,这里有什么问题?如果我做了var obj = jQuery.parseJSON('{“enable_class”:“disable”}');',那么'obj.enable_class ===“enable”'显然是'false'。 –

+0

为什么直接在'$ .fn'上调用函数?这不是应该如何工作。附加到'$ .fn'的函数是jQuery插件,你应该在jQuery对象上调用它们,比如'$('#myEle')。loadAjaxVals()'。如果你的函数不作用于jQuery对象,不要把它放在'$ .fn'中。 –

回答

1

JSON仅在loadAjaxVals函数中可用。我建议你编辑loadAjaxVals接受回调函数。

事情是这样的:

function loadAjaxVals(script, json_action, id, callback){ 
    // get JSON 
    // code 
    // parse JSON 
    // more code 
    if($.isFunction(callback)){ 
     callback(data); // pass callback the parsed JSON data 
    } 
} 

然后调用它像:

loadAjaxVals(script, json_action, id, function(data){ 
    // use data 
    console.log(data); 
}); 
0

那么你可以使用“在”操作检查的对象有一个属性...

​​

应该是真实的,如果确实是对象竟enbable_class无论是明智的假

至于你第二个问题,你可能是使用缓存版本的对象,这是相当普遍的,相信我,我会建议清理缓存并再次尝试,我也推荐使用内置的Google Chrome JavaScript调试器并附带一个非常漂亮的控制台和其他细微的主机...... :)

如果确实问题是缓存问题,那么他们的解决方法就是一对夫妇......一旦您确认了问题,我会详细说明。