0

しばらくの間、flickr の検索に苦労しています。最初は、PHP で XML ファイルを取得して simpleXML に変換していましたが、Javascript で情報にアクセスして画像へのリンクを作成することができませんでした。非常にイライラします!

そこで、PHP を捨てて、json を使用してリンクを取得する JavaScript に切り替えることで、少し単純化することにしました。

  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>

これはフリッカー検索です

<!-- 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 に取得する方法として、次の 2 つの方法を提案できます。

  • PHP について言及されたので、フォームを使用して通常どおり GET (method="GET") を使用して送信し、そこから src URL を構築してみませんか? と置き換えるだけ"+document.getElementById("search").value+"<?=urlencode($_GET['search'])?>、最初はうまくいくはずです。ページは JS を介してよりも 1 回読み込まれますが、これがおそらくその問題に対する最も迅速な解決策です。ただし、これはテストのみを目的としており、実際の Web サイトではスタイルが悪いだけです。
  • または、フォームが送信されたときに実行される関数を作成すること<form onsubmit='load_flickr(this);return false;'>もできthis.search.valueますload_flickr

2) <!-- getdetails_url 行の最後にあるのは何ですか? ここでのコピーと貼り付けの間違いであり、実際には自分のコードではないと思います。

3) おそらく最も重要な間違い: 画像 URL の「静的」の前に終止符がありません (farmX.static.flickr.comないfarmXstatic.flickr.com) :-)

于 2012-04-05T14:15:20.163 に答える