如何将JSON从PHP转换为JS
How to get JSON from PHP to JS?
我已经搜索了将近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
问题是,如何使用JavaScript获取这些数据?我的目标是制作一个.js脚本,根据这些JSON数据生成民意调查,但老实说,我找不到任何关于如何做到这一点的例子。猜测它有点像:
Obj jsonData = new Object();
jsonData = $.getJson('url',data,function()){
enter code here
}
如有任何好的例子或类似的链接,我们将不胜感激。我认为用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);
})
})
})
});
这里的想法是进入中间层次的问题信息,打印出问题描述,然后根据问题类型-在进入下一个问题之前,循环浏览选项(如果有)以创建复选框/单选按钮组。第一个数字代表我目前正在进行的多阶段民意调查的哪个阶段。我的计划是通过隐藏/显示各种div将其分为6个阶段,直到通过Ajax提交表单的最后一页。
不确定,但我认为,您可以使用
$.getJSON('url', data, function(jsonData) {
// operate on return data (jsonData)
});
现在您可以访问和操作PHP json数据,如果你打算在getJson调用之外使用它,你可以将它分配给一个变量
var neededData;
$.getJSON('url', data, function(jsonData) {
neededData = jsonData;
});
尝试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');
});
此示例基于JSON结构being;
{
"one": "Singular sensation",
"two": "Beady little eyes",
"three": "Little birds pitch by my doorstep"
}
不要在PHP中使用echo。它将打印字符串而不是JSON。
使用json_encode将json传递给javascript。
Use可以使用each在javascript端获取JSON中的值。
示例
http://www.darian-brown.com/pass-a-php-array-to-javascript-as-json-using-ajax-and-json_encode/
如果您使用JQuery,您可以在这里看到一个非常简单的方法解决方案:http://api.jquery.com/jQuery.getJSON/.
否则,我只想让您解释一下,没有办法像您在上面的代码中尝试的那样,直接用JavaScript访问JSON。要点是,JavaScript在浏览器上运行,而PHP脚本在服务器上运行。所以他们之间肯定有沟通。因此,我建议您必须通过http从服务器请求数据。
HTH
- 使用JS将数组转换为json对象
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- 如何使用下划线js转换这些数据
- js代码从jQuery转换为原生代码
- 如何将我的json结构转换为C3.js所需的列结构
- 将数组键转换为数字node.js
- 带Js的货币转换器
- node.js将字符串转换为要上传到Web服务器的文件
- 将字符串转换为JS对象
- 将HTML5模板转换为流星.js,关于js init的问题
- 建议将包含不同参数的内联JS转换为外部脚本
- 闭包js框架-将ArrayBuffer转换为字符串
- 在js中将字符串转换为十六进制
- d3.js条形图转换无法正常工作
- JS-如何将图像对象转换为灰度并显示
- 用于转换JS对象的任何标准JavaScript库
- 如何在每次点击时用CSS转换/转换JS将对象旋转120度
- 需要一些帮助转换Js到c#
- 转换JS日期+时间到不同的时区
- 转换Js数组到JSON对象的关键字