Php 如何将Flickr API返回的图像放入不同的页面?
我正在尝试创建一个网页来显示Flickr API返回的一些图像。但是有成千上万的图片返回,所以我不能把它们放在同一个网页上,因为那时人们需要一直滚动。所以我想把它们分成不同的页面,就像我们通常看到的那样,例如,“第1页,第2页,第3页,下一页”。但我不知道如何实现这一点。我的想法是使用javascript告诉用户选择哪个页面,然后将这个数字发送到API请求。然而,API是由php处理的,我不知道如何将值从JS发送到php,所以我还没有解决这个问题。谁能想一想!谢谢大家!Php 如何将Flickr API返回的图像放入不同的页面?,php,javascript,api,flickr,Php,Javascript,Api,Flickr,我正在尝试创建一个网页来显示Flickr API返回的一些图像。但是有成千上万的图片返回,所以我不能把它们放在同一个网页上,因为那时人们需要一直滚动。所以我想把它们分成不同的页面,就像我们通常看到的那样,例如,“第1页,第2页,第3页,下一页”。但我不知道如何实现这一点。我的想法是使用javascript告诉用户选择哪个页面,然后将这个数字发送到API请求。然而,API是由php处理的,我不知道如何将值从JS发送到php,所以我还没有解决这个问题。谁能想一想!谢谢大家! April我不熟悉fli
April我不熟悉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>
然后有一个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操作。以下是此问题的最终解决方案: 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文件将直接通过FlickrAPI获取页面
然后我使用一些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>";
echo“”;
$back_page=$page-1;
$next_page=$page+1;
回声“;
如果($page>1){
回声“;
}
//如果当前页不是最后一页
如果($page!=$page_count){
回声“;
}
$last_page=$page_count;
回声“;
回声“
”;
最后,感谢所有帮助过您的人。不能在一个请求中将客户端脚本变量(Javascript)发送到服务器端脚本(PHP),因为在Javascript考虑运行之前,服务器端脚本已经完成。你需要做一些AJAX。i、 e.使用javascript发布/访问PHP页面,获取API信息,然后对其进行处理。谢谢Leeish,是的,这也是我的想法。因此,我不能简单地将JS中的值传递给PHP,因为PHP比JS先运行。你知道我应该用什么标签来写第1页、第2页和第3页吗?@AprilLee你能不能把你的问题再扩大一些?展示一些代码片段,包括您所研究的内容。另外,欢迎来到StackOverflow!谢谢大家!@杰西,我已经更新了问题。希望这会有帮助!谢谢你的回复,利什。我终于在没有AJAX的情况下找到了答案。这其实很简单。你应该把你的答案作为答案贴出来,然后把它标记为正确答案。
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>";