2012-04-05 2 views
0

Я уже некоторое время борется с поиском flickr. Первоначально я возвращал XML-файл с PHP и преобразовывал его в simpleXML, но я не мог получить Javascript для доступа к информации для создания ссылок на изображения. Очень расстраивает!Flickr Извлечение изображений в формате json с помощью 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> 

ответ

0

1) Ваша команда JS в строке src скрипта не выполняется. Я могу предложить две альтернативы получения значения окна поиска в URL:

  • Поскольку вы упомянули PHP, почему бы не просто использовать форму для отправки обычно с помощью GET (метод = «GET») и построить Src URL из что? Вы можете просто заменить "+document.getElementById("search").value+" на <?=urlencode($_GET['search'])?>, и это должно сработать для начала. Страница будет загружаться еще раз, чем через JS, но это, вероятно, самое быстрое решение этой проблемы. Это только для целей тестирования, хотя на реальном сайте это будет просто плохой стиль.
  • В качестве альтернативы вы можете написать функцию, которая будет выполняться при отправке формы, например. например <form onsubmit='load_flickr(this);return false;'>, и вы должны иметь доступ к this.search.value в пределах load_flickr, создайте URL-адрес запроса flickr, а затем загрузите скрипт.

2) Что это такое <!-- get в конце строки detail_url? Я предполагаю, что это просто ошибка с копией + вставка здесь, а не на самом деле в вашем собственном коде.

3) Вероятно, самая главная ошибка: Вы не нашли fullstop перед «статический» в вашем URL изображения (farmX.static.flickr.com не farmXstatic.flickr.com) :-)

Смежные вопросы