2010-07-29 3 views
1

Je suis en train d'essayer d'utiliser l'API Flickr pour créer une galerie photo sur mon site, j'ai le photoset API &, et j'utilise la méthode Flickr 'getPhotos' qui renvoie les photos d'un ensemble donné et je l'appelle en utilisant jQuery.JQuery & Flickr API, ne pas obtenir les détails du photoset correctement

Mon javascript tout semble fonctionner très bien, sauf tandis que les détails de la photoset Flickr sont retournés, au point de construire mes sites src, les données sont perdues ...

Alors que le débogage (en utilisant Internet Explorer - F12) l'objet 'data' contient les détails attendus, avec un paramètre de photoset, au sein de ce paramètre j'ai le paramètre 'photo' et à l'intérieur j'ai une collection d'objets [0-37] contenant chacun la ferme des paramètres , id, secret, serveur & title 'tous avec les valeurs attendues. Cependant, lorsque je compile mon code HTML 'theHtml' et que je comble les lacunes avec les valeurs ci-dessus, ma valeur HTML est définie sur 'undefined'.

Ainsi, au lieu d'obtenir le prévu: farm4.static.flickr.com/2480/1234567890_a1a1a1a1a1_b.jpg

Je reçois farmundefined.static.flickr.com/undefined/undefined_undefined_b.jpg

Can Quelqu'un m'explique-t-il?

Voici mon code jQuery:

<script type="text/javascript"> 
$(document).ready(function(){ 
$.getJSON('http://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos&api_key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&photoset_id=00000000000000000&format=json&jsoncallback=?', displayImages); 
    function displayImages(data) { 
    var theHtml = ""; 
    $.each(data.photoset, function(i,photo){ 
    var source = 'http://farm'+photo.farm+'.static.flickr.com/'+photo.server+'/'+photo.id+'_'+photo.secret+'_b.jpg'; 
    theHtml+= '<li><a href="'+photo.link+'" target="_blank">'; 
    theHtml+= '<img title="'+photo.title+'" src="'+source+'" alt="'+photo.title+'" />'; 
    theHtml+= '</a></li>'; 
    }); 
    $('#images').html(theHtml); 
    }; 
}); 
</script> 

<div id="images"></div> 

var source ne se construit pas corerctly.

Bravo à l'avance!

+1

Classé! $ .each (data.photoset, function (i, photo) { Doit avoir été $ .each (data.photoset.photo, fonction (i, photo) { – Mark

+0

Postez-le comme réponse, puis acceptez-le en cliquant sur cochez cette case pour que les autres utilisateurs puissent bénéficier du même problème – Anurag

Répondre

2

Trié!

$.each(data.photoset, function(i,photo){ 

Aurait été

$.each(data.photoset.photo, function(i,photo){ 
+0

L'option pour 'accepter' cette réponse n'est pas là – mark

+0

Vous avez posté sous différents comptes? – Anurag

+0

Mark, merci pour votre script! parfait pour ce que j'essaie de faire, mais pour une raison ou pour une autre, c'est seulement l'affichage de la dernière image dans le jeu. Avez-vous eu des problèmes avec ça? – jonathonthoma