0

我一直在为 flickr 搜索而苦苦挣扎。最初,我使用 PHP 检索 XML 文件并将其转换为 simpleXML,但我无法让 Javascript 访问信息以构建图像链接。非常令人沮丧!

所以我决定通过放弃 PHP 并换成 javascript 来简化它,使用 json 获取链接。

  1. 我在将文本输入到文本框中以填充到 flickr 请求中时遇到问题。

  2. 当我在此链接中手动使用文本术语时,它会检索没有图像的图像框。当我单击图像框时,指向 Flickr 的链接有效。

我究竟做错了什么?!

任何帮助将不胜感激,因为我现在已经尝试了 3-4 种不同的方法,但仍然觉得我无处可去!

谢谢迈克

    <script type = "text/javascript">
        function jsonFlickrApi(rsp){ 
            window.rsp = rsp;

            var display = "";

            // loop through the objects to build the images from the json response

            for(var i=0; i<rsp.photos.photo.length; i++){
                photo = rsp.photos.photo[i];

            // use the various elements of the json object to build the link

                details_url = "http://farm" +photo.farm+ "static.flickr.com/" +photo.server+ "/" +photo.id+ "_" +photo.secret+ "_" + "t.jpg"; <!-- get
                owner_url = "http://www.flickr.com/photos/" + photo.owner + "/" + photo.id;
                display += '<a href="' + owner_url + '">' + '<img alt="'+photo.title + '"src="' + details_url + '"/>' + '</a>';
            }
            // display the images
            document.writeln(display);

        }

    </script>

这是一个 flickr 搜索

<!-- the form is supposed to take a request from the user -->

<form id="flickr_form">
    <input type="text" name="search" id="search"/>
    <input type="submit" value="Search"/>

</form>
<script src = "http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=0a109e625227a913ef57ac207f1af24f&text="+document.getElementById("search").value+"&per_page=10&format=json">

   </script>

4

1 回答 1

0

1) 脚本 src 行中的 JS 命令没有被执行。我可以建议两种将搜索框值放入 URL 的方法:

  • 既然你提到了 PHP,为什么不简单地使用表单使用 GET (method="GET") 来正常提交并从中构造 src URL?您可以替换"+document.getElementById("search").value+"<?=urlencode($_GET['search'])?>并且应该可以开始使用。该页面将比通过 JS 多加载一次,但这可能是解决该问题的最快方法。不过,这仅用于测试目的,在实际网站上,这只是一种糟糕的风格。
  • 或者,您可以编写一个在提交表单时执行的函数,例如<form onsubmit='load_flickr(this);return false;'>,您应该能够在其中访问this.search.valueload_flickr从中构建 flickr 请求 URL,然后加载脚本。

2) <!-- getdetails_url 行的末尾是什么?我假设这只是复制+粘贴的错误,而不是您自己的代码。

3)可能是最重要的错误:您在图片 URL 中的“静态”之前缺少句号(farmX.static.flickr.com不是farmXstatic.flickr.com):-)

于 2012-04-05T14:15:20.163 回答