2015-06-09 42 views
0

我正在處理從Flickr打印圖像的代碼片斷。 基於來自用戶的輸入,代碼查找相應的圖像。從Flickr中選擇圖像並使用PHP將它們存儲在數據庫中

一旦圖像打印在頁面上,我希望能夠進行選擇,並將選擇保存到數據庫或其他地方,我可以檢索它們以便編輯它們或最終將它們用於製作您自己的拼貼頁面。

我使用的檢索Flickr圖片的代碼如下:

<?php 
//choices of tags, number of pictures, tag search based on given tags 
//send back in Json format and decode json 
    $api_key = '4eb66ae95c7e8fb8dd729ebf61541d79'; 
    if(isset($_POST['submit'])) 
{ 
    $tag1 = htmlspecialchars($_POST['tag1']); 
    $tag2 = htmlspecialchars($_POST['tag2']); 
    $tag3 = htmlspecialchars($_POST['tag3']); 
    $tag = $tag1.",".$tag2.",".$tag3; 

    $perPage = 25; 
    $url = 'https://api.flickr.com/services/rest/?method=flickr.photos.search'; 
    $url.= '&api_key='.$api_key; 
    $url.= '&tags='.$tag; 
    $url.= '&per_page='.$perPage; 
    $url.= '&format=json'; 
    $url.= '&nojsoncallback=1'; 

    $response = json_decode(file_get_contents($url)); 
    $photo_array = $response->photos->photo; 

    //check each photo from server, and specifiy url to print 
    foreach($photo_array as $single_photo) 
    { 

     $farm_id = $single_photo->farm; 
     $server_id = $single_photo->server; 
     $photo_id = $single_photo->id; 
     $secret_id = $single_photo->secret; 
     $size = 'm'; 

     $title = $single_photo->title; 

     $photo_url = 'http://farm'.$farm_id.'.staticflickr.com/'.$server_id.'/'.$photo_id.'_'.$secret_id.'_'.$size.'.'.'jpg'; 

     print "<img title='".$title."' src='".$photo_url."' />"; 

    } 
    } 

?> 

所以我的問題是,有沒有一種方法,使打印的圖像可點擊/選擇和/或存儲的方式圖像,使用數據庫或其他?

回答

1

我認爲你的問題太過於寬泛,但這裏有一些提示。

首先,把你的img標籤

print_r "<img class="clickable" title='".$title."' src='".$photo_url."' />" 

使用AJAX一些類照片的URL發送到另一個PHP頁面。這裏有一個使用jQuery的例子。

$('.body').on('click', '.clickable', function(){ 
    //use on because your <img> is dynamic 
    var photo_url = $(this).prop('src); 
    $.ajax({ 
      url: 'myApp/saveImg.php', 
      data: {'url': photo_url}, 
      type: 'POST', 
      success: function(){ 
       alert('ok'); 
      } 
      error: function(){ 
       alert('error'); 
      }     
}); 

你saveImg.php是

$img_url = $_POST['url']; 
$con = new PDO("mysql:host=ip_number;port=port_number;dbname=dbname", 'user', 'pass', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8')); 
     $sql = 'INSERT INTO table_name VALUES("'.$img_url.'")'; 
     $result = $con->query($sql); 
return 'URL inserted'; 

這樣的事情。嘗試適應您的需求。

希望它有幫助。

+1

好的,謝謝你對如何做到這一點的見解。我知道這是一個廣泛的問題。我只是想知道是否有辦法,如果是這樣,如果它很容易,我只是不知道它或先進的東西。我會嘗試和你的想法搞混了一下,看看它會讓我感覺到! – Xereoth

相關問題