2013-02-04 156 views
0

我有一個嵌入在從包含文件名的mysql數據庫繪製的頁面上的單個圖像。我想要做的是使用javascript調用讓我們說pump.php引入數據庫中的絕對下一個圖像 - 有點像幻燈片放映,然後dynamiclly將它寫入img src。我很接近但很難過。任何幫助都是巨大的讚賞,我搜索和搜索!這裏是div /嵌入圖像:如何動態/ ajax從一個新的照片從MySQL數據庫重新加載照片?

<div id="image_holder"><img id=target src=./watch/<? echo $frame; ?> /></div> 

然後我有這個javascript,1000時鐘後的時鐘調用函數kitty。小鷹應該刷新pump.php包含PHP與ID號一起(假設其從1開始,第一個記錄,然後編寫動態的新形象的名稱上面的HTML:

setInterval("kitty()",1000); 

function kitty(){ 

$.get('pump.php?id=<? echo $id; ?>', 
    { lastupdate: 1 }, 
    processUpdate, 'html'); 
    }, 1000) }; 

var target_image = document.getElementById("target"); 
    target_image.src = <? echo $image ?>; 
} 

這裏是pump.php(減去數據庫連接信息),它應該拉圖像,其中ID =腳本的電流ID也增加ID由一個如此這樣,我們可以在2在下一次啓動!

$result = mysql_query("SELECT * FROM frame_database where id=$id "); 
$data = mysql_fetch_array($result); 
$image = $data["image"]; 
$id++; 

你們認爲什麼?我是從樹上的faaaaaaaaaaaar?

+0

避免使用./來訪問文件夾 – GGio

+0

'processUpdate'方法是什麼樣的? – Jim

回答

0

首先關閉pump.php需要將數據返回到腳本,以便腳本可以獲取圖像名稱。

$result = mysql_query("SELECT * FROM frame_database where id=$id "); 
$data = mysql_fetch_array($result); 
$image = $data["image"]; 
$id++; 
echo json_encode(array('image'=>$image, 'id'=>id)); 

然後在小貓(),你可以這樣做:

$.get('pump.php?id=<? echo $id; ?>', 
     { lastupdate: 1 }, 
     function(data){ 
      var res = JSON.parse(data); 
      var target_image = document.getElementById("target"); 
      target_image.src = res.image; 
     }, 'html'); 

請注意,你可能會想改變<? echo $id; ?>部分是一個JavaScript變量,在小貓的get()調用可以更新。

希望這會有所幫助。

0

我首先看到的第一個問題是您從PHP調用中填充圖像src。你想要做的就是啓動一個ajax調用服務器上的某個文件(用PHP,Java或其他服務器支持的語言編寫)。由於這是一個異步調用,你必須提供一個回調函數(在java腳本中)來獲得成功和失敗。

成功函數可能會收到一個字符串或一個json對象,它保存圖片的uri。然後你必須改變圖像src ...我想這應該是它。

我推薦使用像jQuery這樣的框架來緩解整個ajax的東西。