2009-11-27 30 views
0

我有一個嵌入在PHP頁面的Flash電影。 PHP頁面向用戶顯示一個值(他們上傳的圖像的數量)。當用戶上傳新圖片時,我希望PHP頁面上的值反映更改,而不刷新頁面。如何使用externalInterface允許Flash調用javascript來更新屏幕上的值?

使用MySQL從數據庫中檢索此值。因此,繼承人什麼伊夫迄今所做的 -

在PHP頁面,在這裏我想告訴我有一個div值

<div id="content_info"><script type="text/javascript" src="getInfo.php?group= <?php echo($groupid); ?> "></script></div> 

這調用查詢數據庫,並像這樣的輸出結果的外部PHP文件

Header("content-type: application/x-javascript"); 
//do the query with PHP and get $number and then output 
echo "document.write(\" (".$number.")\")"; 

當頁面加載第一次正確的數字顯示在div中,所以一切正常。下一步是在值更改時調用某些更新此div的內容。所以我將在flash中設置externalInterface以調用一個javascript函數來執行此操作。

這是林卡住,我希望能夠做這樣的事情 -

function ReplaceContentInContainer(id) { 
var container = document.getElementById(id); 
container.innerHTML = getInfo.php?type=new&group= <?php echo($groupid) ?>; 
} 

,並把這種由

ReplaceContentInContainer(content_info) 

我意識到這心不是去上班,但任何人都可以表演我如何得到這個結果?只有當PHP創建頁面

千恩萬謝

回答

2

group= <?php echo($groupid); ?>將被執行。您應該將該值存儲在JavaScript中的變量中。看看這是否有效。

<div id="scriptDiv"> 
    <script type="text/javascript"> 
    <!-- store the group id --> 
     var groupID = <?php echo($groupid); ?>; 
     function getGroupID() 
     { 
      return groupID; 
     } 
     function updateValue(value) 
     { 
      document.getElementById("content_info").innerHTML = value; 
     } 
    </script> 
    <div id="content_info"> 
     <!-- for initial value --> 
     <script type="text/javascript" 
      src="getInfo.php?group= <?php echo($groupid); ?> "> 
     </script> 
    </div> 
</div> 

現在你可以使用閃光燈的URLLoader

var ldr:URLLoader = new URLLoader(); 
var gid:String = ExternalInterface.call("getGroupID"); 
var req:URLRequest = new URLRequest("getInfo.php"); 
req.data = {type:"new", group:gid}; 
ldr.addEventListener(Event.COMPLETE, onLoad); 
ldr.addEventListener(IOErrorEvent.IO_ERROR, onError); 
ldr.load(req); 

private function onLoad(e:Event):void 
{ 
    var data:String = URLLoader(e.target).data; 
    ExternalInterface.call("updateValue", data); 
} 
private function onError(e:IOErrorEvent):void 
{ 
    trace("ioError"); 
} 
相關問題