2017-05-08 22 views
1

こんにちは私はAPIを初めて使い、Flickr APIには苦労しています。私はビデオや記事を探してみましたが、それは圧倒的でした。私のプロジェクトで何をしようとしているのは、Yelp APIを使ってレストランを検索するユーザーがいることです。レストランのリストを取得すると、各リスト項目に選択ボタンが表示されます。ユーザーが選択ボタンをクリックすると、その場所の画像がHTMLページのdivにポップアップ表示されます。私はYelp APIを動作させることができますが、ユーザーが選択ボタンをクリックしたときにイメージをロードする方法には苦労しています。私は完全に失われており、どんな助けもありがとうございます。以下は私のコードです。Flickr API loading images

HTML:

<div class="col-xs-6"> 
    <h2 id="title">Manhattan</h2> 
    <div> 
    <h2>Photos</h2> 
    <div id="photos"></div> 
    </div> 
    </div> 

はJavaScript:

$(document).ready(function() { 
    $('#getposts_form').submit(function(event) { 

    event.preventDefault(); 

    $('#output').empty(); 

    var search = $('#search').val(); 
    var title = $('#title').text(); 
    var categories = $('#categories').val(); 
    var price = $("#price").val(); 
    console.log(search); 
    console.log(categories); 
    console.log(price); 


    $("#ajaxIndicator").modal('show'); 

    // make the ajax request 
    $.ajax({ 
     url: 'yelp.php', 
     type: 'GET', 
     dataType: 'JSON', 
     data: { 
      location: title, 
      categories: categories, 
      price: price 
     }, 

     success: function(serverResponse) { 
      console.log(serverResponse); 
      var businesses = serverResponse.businesses; 
      console.log(businesses); 
      var myHTML = ''; 
      for(var i = 0; i < serverResponse.businesses.length; i++){ 
       myHTML += '<li class="tweet list-group-item">'; 
       myHTML += '<ul class="list">' 
       myHTML += '<li><span class="user"><b>' + serverResponse.businesses[i].name + '</b></span></li>'; 
       myHTML += '<li><span class="user">' + serverResponse.businesses[i].price + '</span></li>'; 
       myHTML += '<li><span class="user">' + serverResponse.businesses[i].latitude + '</span></li>'; 
       myHTML += '<li><span class="user">' + JSON.stringify(serverResponse.businesses[i].categories) + '</span></li>'; 
       myHTML += '<li><span class="user"><button class="btn btn-default" type="submit" id="select">Select</button></span><li>';  
       myHTML += '</ul>' 
       myHTML += '</li>'; 
      } 
      $('#output').append(myHTML); 
     }, 

     error: function(jqXHR, textStatus, errorThrown) { 
      console.log('error'); 
      console.log(errorThrown); 
      console.log(jqXHR); 
     }, 


     complete: function() { 
      $("#ajaxIndicator").modal('hide'); 
     } 
    }); 



}); 

//ajax call for flickr api 
$('.select').submit(function(event) { 

    event.preventDefault(); 

    $('#photos').empty(); 

    var lat = $('#lat').val(); 
    var long = $('#long').val(); 



    $("#ajaxIndicator").modal('show'); 

    make the ajax request 
    $.ajax({ 
     url: 'http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key="here i added my own key"&format=json&nojsoncallback=1', 
     type: 'GET', 
     dataType: 'JSON', 
     data: { 
      //lat: lat, 
      //long:long, 
     }, 

     success: function(serverResponse) { 

      console.log("flickr"); 
      console.log(data); 
     }, 

     error: function(jqXHR, textStatus, errorThrown) { 
      console.log('error'); 
      console.log(errorThrown); 
      console.log(jqXHR); 
     }, 


     complete: function() { 
      $("#ajaxIndicator").modal('hide'); 
     } 
    }); 

}); 

答えて

0

何をする必要が

  • URLを抽出し、配列

  • ループに保存されますarrを通してAY、私はあなたが

    当分の間、単純なAPIに焦点を当てるべきだと思う正しく

    var photos = $("#photos") 
    
    for (var i = 0; i < arr.length; i++) { 
        var image = "<img src=" + encodeURL(arr[i]) + "></img>" 
        photos.append(image) 
    } 
    

設定SRCと新しい子イメージを作成します