我在制作带有一些JSON数据的AJAX请求时遇到问题,这些数据用方括号括起来 - 值返回undefined
。
我测试了第二个JSON文件,该文件在没有方括号但没有方括号的情况下工作正常,所以我知道这绝对是问题。
问题是我在哪里进行更改:在JSON或AJAX请求中?
这是我创建this JSON file的PHP代码段。
foreach ($product_urls as $i => $product_url) {
$result[] = array(
'product_url' => $product_url,
'shop_name' => $shop_name,
'photo_url' => $photo_url[$i],
'was_price' => $was_price[$i],
'now_price' => $now_price[$i]
);
}
echo json_encode($result);
这是我的AJAX请求:
$('#container').html('<h3 class="feeds-loader text-muted" style="text-align: center;">Loading...</h3>');
$.ajax({
url: 'http://www.comfyshoulderrest.com/shopaholic/rss/asos_f_uk.php?id=1',
type: 'GET',
dataType: 'json',
success: function(result) {
$('#container').html('');
var product_url = result['product_url'];
var shop_name = result['shop_name'];
var photo_url = result['photo_url'];
var was_price = result['was_price'];
var now_price = result['now_price'];
alert(product_url);
},
error: function() {
alert("error");
}
})
});
答案 0 :(得分:2)
foreach ($product_urls as $i => $product_url) { $result[] =...
$result
是一个行数组,因此在success: function(result)
result
中是一个行数组,而不是一行。
所以这会显示一个网址
var product_url = result[0]['product_url'];
我猜你想要迭代它们吗?
$('#container').html('');
for (i in result){
var product_url = result[i]['product_url'];
var shop_name = result[i]['shop_name'];
var photo_url = result[i]['photo_url'];
var was_price = result[i]['was_price'];
var now_price = result[i]['now_price'];
alert(product_url);
}
答案 1 :(得分:0)
如何尝试使用它:
array_push($result, array(
'product_url' => $product_url,
'shop_name' => $shop_name,
'photo_url' => $photo_url[$i],
'was_price' => $was_price[$i],
'now_price' => $now_price[$i]
));
而不是$ result []?