Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将Flickr API返回的图像放入不同的页面?_Php_Javascript_Api_Flickr - Fatal编程技术网

Php 如何将Flickr API返回的图像放入不同的页面?

Php 如何将Flickr API返回的图像放入不同的页面?,php,javascript,api,flickr,Php,Javascript,Api,Flickr,我正在尝试创建一个网页来显示Flickr API返回的一些图像。但是有成千上万的图片返回,所以我不能把它们放在同一个网页上,因为那时人们需要一直滚动。所以我想把它们分成不同的页面,就像我们通常看到的那样,例如,“第1页,第2页,第3页,下一页”。但我不知道如何实现这一点。我的想法是使用javascript告诉用户选择哪个页面,然后将这个数字发送到API请求。然而,API是由php处理的,我不知道如何将值从JS发送到php,所以我还没有解决这个问题。谁能想一想!谢谢大家! April我不熟悉fli

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


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'>&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>";
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'>&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>";