2010-08-19 82 views
2

我正在使用閃光燈攝像頭進行拍照。它工作的很好,並通過POST吐出一個URL。用jQuery顯示POST數據?

我在PHP中編碼,並希望顯示此POST數據一旦收到,問題是我不重新加載頁面。我看了看周圍,我不確定動態加載這個數組數組。

我應該在哪裏看? jQuery的?

啊,算出來。我有Flash的東西有一個內置的回調函數,所以我只需要從那裏追加數據!

回答

0

jQuery是無法讀取任何種類的要求除了出現在URL(GET)中的數據之外的數據。您將需要使用PHP(或其他服務器端語言)來處理由FLash應用程序創建的響應。

由於您使用Flash進行流程的事實,您在某種程度上處於劣勢,因爲除非Flash應用程序具有某種JavaScript「PhotoUploaded」事件通知,否則您的頁面將不會收到Flash通知只是提交了一張圖片到您的服務器,需要檢索和插入。如果您可以修改Flash應用程序以創建外部JavaScript事件,那麼您可以按弗蘭基在他的回答中描述的那樣進行操作;否則,如果修改Flash應用程序不是一個選項,那麼另一個解決方案就是讓你的頁面每隔一段時間(大概需要5-10秒)向服務器發送一個請求,以檢查是否有照片存在顯示尚未。

以這種方式設置與服務器的輪詢最簡單的方法是確保每次從Flash上​​傳照片都有一個唯一的,預先確定的標識符,以便您的網頁在初始加載時知道。然後,您可以每隔幾秒用一個AJAX請求來ping您的服務器,並將其傳遞給唯一標識符,以便找到正確的映像。

基本例如:

function GetPhoto() { 
$.get('/getphoto.php?ID=1541XJ55A6', function(response) { 
    if(response.ImageUrl !== "") { 
     $(".profile-image").attr("src", response.ImageUrl); 
     if(getPhotoTimer !== undefined) { 
      clearInterval(getPhotoTimer); 
     } 
    } 
}); 
} 

$(document).ready(function() { 
    var getPhotoTimer = setInterval("GetPhoto()", 10000); // every 10 seconds 
}); 
0
  1. Flash每次回調URL都會調用JavaScript。
  2. 的Javascript聯繫人服務器(PHP)和獲得內容
  3. 的Javascript注入內容到頁面

這樣的(Flex代碼):

// attach a function to the completeHandler 
private function completeHandler(evt:Event):void { 
    javascriptComplete(); 
} 

// declare the function that will call the javascript function 
private function javascriptComplete():void { 
    var javascriptFunction:String = "galeryUploadComplete("+Application.application.parameters.opt+")"; 
    ExternalInterface.call(javascriptFunction); 
}