Php 使用Jquery解析JSON数据以设置背景图像
我正在使用另一个开发人员的代码,客户要求我升级。 我需要做的是使用Jquery检索PHP文件生成的内容并对其进行解析,以便在页面中使用文件中的元素。生成的内容采用JSON格式,如下所示:Php 使用Jquery解析JSON数据以设置背景图像,php,jquery,json,Php,Jquery,Json,我正在使用另一个开发人员的代码,客户要求我升级。 我需要做的是使用Jquery检索PHP文件生成的内容并对其进行解析,以便在页面中使用文件中的元素。生成的内容采用JSON格式,如下所示: { "productid": "3621", "id": "24", "title": "Oak+Veneer+26mm", "description": "Oak+Veneer%2C+26mm+width%2C+21mm+deep%2C+14mm+rebate",
{
"productid": "3621",
"id": "24",
"title": "Oak+Veneer+26mm",
"description": "Oak+Veneer%2C+26mm+width%2C+21mm+deep%2C+14mm+rebate",
"mouldingimage": "L1545a.jpg",
"frameimagetop": "L1545_top.jpg",
"frameimagebottom": "L1545_bottom.jpg",
"frameimagevertical": "L1545_vert.jpg",
"unitprice": "0.18",
"banda": {},
"bandb": {},
"bandc": {},
"bandd": {},
"bande": {},
"notes": {},
"code": "L1545",
"deliveryperiodid": "107",
"deliverybandid": "64",
"supplierid": "115",
"date": "2011-10-07+16%3A27%3A32",
"active": "0",
"previousunitprice": {}
}
我需要从上面的数据中获取'frameimagetop'的值,然后使用该值设置div的背景图像
我尝试了以下几种方法,但无法实现:
$.getJSON('/getframedata.php', {
id: $(this).attr("id")
}, {
get_param: 'frameimagetop'
}, function (data) {
$.each(data, function (index, element) {
$('#frame_top').append($('<div>', {
text: element.name
}));
$.getJSON('/getframedata.php'{
id:$(this.attr(“id”)
}, {
获取参数:“frameimagetop”
},函数(数据){
$.each(数据、函数(索引、元素){
$('#框架顶部')。附加($(''{
text:element.name
}));
我知道上面不会设置div的背景图像,但目前我甚至无法让它打印文本。$.getJSON('/getframedata.php',function(data){
$.getJSON('/getframedata.php', function(data) {
var bgImage = data.frameimagetop;
<code...>
});
var bgImage=data.frameimagetop;
});
有关更多详细信息,请访问jQuery API:
与成功/失败处理程序等类似。您提供的JSON是一个对象。这意味着您不应该通过迭代(使用$.each)来获得确切的值。例如,如果您需要“frameimagetop”属性,您可以这样做:
对象。属性\u name
。在您的示例中,它是:
$.getJSON('/getframedata.php',
{ id: $(this).attr("id") },
function(data) {
alert(data.frameimagetop);
}
);
getJSON是以下内容的快捷方式:
$.ajax({
dataType: "json",
url: url,
data: data,
success: success
});
大多数使用成功处理程序,因此:
$.getJSON('/getframedata.php', {
id: $(this).attr("id")
}, function (data) {
$('#frame_top').css("background-image", "url(" + data.frameimagetop + ")");
});
我要补充的是,最好不要依赖jQuery猜测并输出json内容类型:header('content-type:application/json')。谢谢@msplay,根据您的建议,我制定了这个解决方案:$.getJSON('/getframedata.php',{id:$(this.attr(“id”)},函数(data){var bgImage=data.frameimagetop;$('#frame#top').css('background-image',url)(/data/customframes/'+bgImage+');});希望这对其他人有帮助!我格式化了您的代码块,以便您可以看到其中明显的结构缺陷,JSON块似乎还可以。