我正在尝试创建一个网页来显示 Flickr API 返回的一些图像。但是返回了数千张图片,所以我不能将它们放在同一个网页上,因为人们需要一直滚动。所以我想像我们通常有的那样把它们放到单独的页面中,例如,“第 1 页 2 3 下一页”。但我不知道如何实现这一点。我的想法是使用 javascript 来告诉用户选择哪个页面,然后将此数字发送到 API 请求。但是,API 是由 php 处理的,我不知道如何将值从 JS 发送到 PHP,所以我还没有解决这个问题。任何人都可以给出任何想法!谢谢!
四月
我正在尝试创建一个网页来显示 Flickr API 返回的一些图像。但是返回了数千张图片,所以我不能将它们放在同一个网页上,因为人们需要一直滚动。所以我想像我们通常有的那样把它们放到单独的页面中,例如,“第 1 页 2 3 下一页”。但我不知道如何实现这一点。我的想法是使用 javascript 来告诉用户选择哪个页面,然后将此数字发送到 API 请求。但是,API 是由 php 处理的,我不知道如何将值从 JS 发送到 PHP,所以我还没有解决这个问题。任何人都可以给出任何想法!谢谢!
四月
这是这个问题的最终解决方案: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'>« <strong>Prev</strong></a>";
}
// if current page is not last page
if($page != $page_count) {
echo "<a href='?page=$next_page'><strong>Next</strong> »</a>";
}
$last_page = $page_count;
echo "<a href='?page=$last_page'>Last Page</a>";
echo "</p>";
最后,感谢所有帮助过的人。
我不熟悉 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事情。