我使用Opencart并扩展功能。在这种情况下 - 这是一个扩展颜色选项的脚本。
情况是generalL服务器php生成的json-string JavaScript可以使用。 JSON测试字符串的示例:
{
"110": {
"black": {
"hexcolor": "000000",
"image": "http://ocart.com/image/cache//ajaxcolor/71653fa77e1f98208ff736d6ca0f0909-500x500.jpg",
"thumb_image": "http://ocart.com/image/cache//ajaxcolor/71653fa77e1f98208ff736d6ca0f0909-228x228.jpg"
},
"white": {
"hexcolor": "000033",
"image": null,
"thumb_image": null
}
}
}
层次结构(110)中的第一个元素是html选择选项值,颜色集合基于。
秒元素(“黑色”或“白色”)是用户将看到彩色框的颜色描述。
最后三个字段用于表示每种选定的颜色。
问题是:JQuery拒绝使用此JSON: 它大炮解析它宣布
SyntaxError:意外的令牌on.parseJSON @jquery-2.1.1.min.js:4(匿名函数)@ ajaxcolor.js:14j @jquery-2.1.1.min.js:2k.fireWith @jquery-2.1 .1.min.js:2n.extend.ready @jquery-2.1.1.min.js:2I @jquery-2.1.1.min.js:2ere
以下是代码
的示例 function getProductId() {
return $("input[name='product_id']").attr('value');
}
function getJson(product_id) {
console.log("http://ocart.com/index.php?route=ajaxhelper/test&product_id=" + product_id);
var data = $.getJSON("http://ocart.com/index.php?route=ajaxhelper/test&product_id=" + product_id);
return data;
}
$(document).ready(function() {
var option_info = (getJson(getProductId()));
console.log(option_info);
})
所以请告诉我我做错了什么。
答案 0 :(得分:3)
$.getJSON()
是一个异步函数。你做不到
var data = $.getJSON("http://ocart.com/index.php?route=ajaxhelper/test&product_id=" + product_id);
return data;
相反,你必须在结果回来时处理结果:
$.getJSON("http://ocart.com/index.php?route=ajaxhelper/test&product_id=" + product_id)
.then(function(data){
//Do what you need to do with data
});