Tom*_*Tom 7 javascript json getjson
我真的已经搜索了近2个小时,还没有找到一个关于如何将JSON数据从PHP传递到JS的好例子.我在PHP中有一个JSON编码脚本,它回显了一个看起来或多或少像这样的JSON脚本(伪代码).
{
"1": [
{"id":"2","type":"1","description":"Foo","options:[
{"opt_id":"1","opt_desc":"Bar"},
{"opt_id":"2","opt_desc":"Lorem"}],
{"id":"3","type":"3","description":"Ipsum","options:[
...
"6":
{"id":"14","type":"1","description":"Test","options:[
...
etc
Run Code Online (Sandbox Code Playgroud)
问题是,如何使用JavaScript获取此数据?我的目标是创建一个基于这些JSON数据生成轮询的.js脚本,但我诚实地对上帝找不到任何关于如何执行此操作的示例.猜测它是这样的:
Obj jsonData = new Object();
jsonData = $.getJson('url',data,function()){
enter code here
}
Run Code Online (Sandbox Code Playgroud)
任何好的例子或类似的任何链接将受到高度赞赏.我认为用PHP编码数据是棘手的部分......
编辑:
我得到了这段代码片段,所以我可以在JS中查看我的整个JSON数据.但现在我似乎无法弄清楚如何获取内部数据.它会打印出阶段编号(1-6),但我无法弄清楚如何获取问题数据,然后再解决每个问题中的选项数据.我是否必须尝试嵌套的每个循环?
$(document).ready(function()
{
$('#show-results').click(function()
{
$.post('JSAAN.php', function(data)
{
var pushedData = jQuery.parseJSON(data);
$.each(pushedData, function(i, serverData)
{
alert(i);
})
})
})
});
Run Code Online (Sandbox Code Playgroud)
这里的想法是进入中间级别的问题信息并打印出问题描述,然后根据问题类型 - 循环选项(如果有的话)创建复选框/ radiobutton组,然后再继续下一个问题.第一个数字代表我目前正在进行的多阶段民意调查的哪个阶段.我的计划是通过隐藏/显示各种div来将其划分为6个阶段,直到通过Ajax提交表单的最后一页.
不确定,但我想,你可以使用
$.getJSON('url', data, function(jsonData) {
// operate on return data (jsonData)
});
Run Code Online (Sandbox Code Playgroud)
现在您可以访问和操作PHP json数据,如果您要在getJson调用之外使用它,您可以将其分配给变量
var neededData;
$.getJSON('url', data, function(jsonData) {
neededData = jsonData;
});
Run Code Online (Sandbox Code Playgroud)
试试jQuery文档:http://api.jquery.com/jQuery.getJSON/
这个例子应该让你开始:
$.getJSON('ajax/test.json', function(data) {
var items = [];
$.each(data, function(key, val) {
items.push('<li id="' + key + '">' + val + '</li>');
});
$('<ul/>', {
'class': 'my-new-list',
html: items.join('')
}).appendTo('body');
});
Run Code Online (Sandbox Code Playgroud)
这个例子基于JSON结构;
{
"one": "Singular sensation",
"two": "Beady little eyes",
"three": "Little birds pitch by my doorstep"
}
Run Code Online (Sandbox Code Playgroud)