1

我正在尝试创建一个网页来显示 Flickr API 返回的一些图像。但是返回了数千张图片,所以我不能将它们放在同一个网页上,因为人们需要一直滚动。所以我想像我们通常有的那样把它们放到单独的页面中,例如,“第 1 页 2 3 下一页”。但我不知道如何实现这一点。我的想法是使用 javascript 来告诉用户选择哪个页面,然后将此数字发送到 API 请求。但是,API 是由 php 处理的,我不知道如何将值从 JS 发送到 PHP,所以我还没有解决这个问题。任何人都可以给出任何想法!谢谢!

四月

4

2 回答 2

1

这是这个问题的最终解决方案:Flickr API 调用的 php 代码:

$page = 1;
$tag1 = "puppy"; 
$tag2 = "cute";
$flickrUrl = "http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=blablablabla&tag_mode=all&tags=$tag1\',\'$tag2&per_page=20&page=$page";

解决方案不是将 $page 分配给特定数字,而是使用以下语句:

$page = isset($_GET['page']) ? $_GET['page'] : 1;

通过这样做,php 文件将直接通过 Flickr API 获取页面。

然后我使用了一些 DOM 元素,例如

作为“下一页”和“上一页”的链接,帮助您浏览不同的页面。

echo "<p id=\"nav_bar\">";
$back_page = $page - 1; 
$next_page = $page + 1; 

echo "<a href='?page=1'>First Page</a>";
if($page > 1) { 
     echo "<a href='?page=$back_page'>&laquo; <strong>Prev</strong></a>"; 
} 
// if current page is not last page
if($page != $page_count) { 
     echo "<a href='?page=$next_page'><strong>Next</strong> &raquo;</a>";
} 
$last_page = $page_count;
echo "<a href='?page=$last_page'>Last Page</a>";
echo "</p>";

最后,感谢所有帮助过的人。

于 2013-02-28T21:16:59.463 回答
0

我不熟悉 flickr api,所以我不确切知道您希望如何对内容进行分页,但只需查看您发布的内容,您就可以使用 ajax 来请求 API 调用。因此,在您的 h4 中执行以下操作:

<h4 id=\"num_imgs\">
    Page <span data-page="1">1</span> | 
         <span data-page="2">2</span> | 
         <span data-page="3">3</span> | 
         <span data-page="4">4</span> | 
         <span data-page="5">5</span>
</h4>

然后做一个 jqueryish 调用,如:

$('h4 span').click(function(){
    getImages($(this).data('page'));
}

然后有一个 javascript 图像处理函数来获取图像并处理它们/将它们显示给用户。

getImages(page){
    var flickrUrl = "http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=blablablabla&tag_mode=all&tags=$tag1\',\'$tag2&per_page=20&page="+page;
    $.get(flickrUrl,function(data){
        //PROCESS IMAGES
    });
}

我希望这种设置是有意义的。这似乎是你想要做的。您可以使您的页面动态化并且仍然传递标签。那么你真的不需要 PHP 来设置你的页面,但是根据你的用户选择标签的方式,你仍然可以通过 PHP 来做。我可能会通过javascript做while事情。

于 2013-02-24T01:03:32.550 回答