jQuery AJAX$.每个都带有Instagram JSON
jQuery AJAX $.each with Instagram JSON
我使用ajax函数将更多照片加载到页面中。我将此函数用于用户上传的图像和他们的提要,它们都在API url的末尾使用"max_id"参数。。。当我尝试将此函数用于点赞时,它不会起作用,因为点赞的媒体url以"max_like_id"结尾。我不知道为什么,但也许你们可以帮我!这是我所有的代码:
<script type="text/javascript">
$(document).ready(function() {
$('#more').click(function() {
var user = $(this).data('user'),
maxid = $(this).data('maxid');
$.ajax({
type: 'GET',
url: 'ajaxloadlikes.php',
data: {
user: user,
max_like_id: maxid
},
dataType: 'json',
cache: false,
success: function(data) {
$.each(data.images, function(i, img) {
$('ul#photos').append('<a href="/media.php?user=' + img.user + '&id=' + img.id + '"><img src="' + img.url + '" alt="" /></a>');
});
// Store new maxid
$('#more').data('maxid', data.next_id);
}
});
});
});
</script>
<a id="more" data-maxid="'.$liked_media->pagination->next_max_like_id.'" data-user="self'">Load More</a>
然后我的ajaxloadlikes.php有这个:
$maxID = $_GET['max_like_id'];
$userID = $_GET['user'];
$accessID = **access token**;
$next = "https://api.instagram.com/v1/users/self/media/liked?access_token={$accessID}&max_like_id={$maxID}";
$json = file_get_contents($next);
$media = json_decode($json);
// Collect everything for json output
$images = array();
foreach ($media->data as $data) {
$images[] = array('id' => $data->id, 'url' => $data->images->low_resolution->url, 'user' => $data->user->username);
}
echo json_encode(array('next_id' => $mine->pagination->next_max_like_id, 'images' => $images));
如果我将$next url设置为"max_id"而不是"max_like_id",它只是一遍又一遍地加载相同的图像。。。
谢谢你的帮助!
根据所提供的代码,您似乎错误地引用了对象。data.data[i]
是指返回的对象data
,然后是data
-data.data
中的一个属性,然后它看起来是一个数组,如使用[i]
所示。但是,我看不出您在对象中声明i
或data
属性的位置。
由于缺乏支持信息,我在我的例子中做了一些假设:
var data = {
"next_id": "*next-id*",
"images": [
{
"id": "*image id*",
"url": "*image low_resolution link*",
"user": "*user*"},
{
"id": "*image id*",
"url": "*image low_resolution link*",
"user": "*user*"}
]
};
var json = data.images;
for(var i = 0; i < json.length; i++) {
var img = json[i];
var item = '<li><div class="image"><a href="/media.php?user=' + img.user + '&id=' + img.id + '"><img src="' + img.url + '" alt="" /></a><a href="/media.php?user=' + img.user + '&id=' + img.id + '"><img class="hoverimage" src="/zoom.png" alt="" /></a></div></li>';
$('ul#photos').append(item);
}
演示:http://jsfiddle.net/DdqxT/
上面的代码获取data
对象,然后循环通过images
属性返回其数组中的对象。
我在你的问题中注意到的一件事是,你有img.user.
,它不应该包含后面的.
。
相关文章:
- jQuery匹配JSON对象的部分文本
- 在循环中分配json值时,值被覆盖
- 需要帮助设置json数组
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 使用JQuery解析JSON嵌套数组
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 如何使用json将对象列表从java转换为javascript
- 如何使用 node.js 比较两个 json 数组
- 如何将JSON数据导入我的ejs模板
- 区分JSON中的矩阵和列表列表
- 不显示带有本地json文件数据的谷歌地图脚本
- 如何将json数据显示为html
- 如何为json对象中的段发送array[]
- 根据id将json数组组合为一个json数组
- Json数据包含日期和时间格式
- AngularJS-在JSON选择器中使用变量名
- jQuery AJAX$.每个都带有Instagram JSON