這是個很簡單的程式,但是你首先必須要具備PHP以及MySQL的基本知識,因為這篇文章並不會告訴你要怎麼連結資料庫以及撰寫PHP。
要如何使用Flex來呈現資料庫當中的資料?
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="myQuery.send();">
<mx:HTTPService id="myQuery" url="php/users.php" useProxy="false"></mx:HTTPService>
<mx:DataGrid x="121" y="101" dataProvider="{myQuery.lastResult.users.user}" width="315">
<mx:columns>
<mx:DataGridColumn headerText="使用者名稱" dataField="username"/>
<mx:DataGridColumn headerText="電子郵件" dataField="useremail"/>
</mx:columns>
</mx:DataGrid>
</mx:Application>
這就是全部的Flex程式碼,真是少得可憐…所有它的工作,就是擔任一個使用者介面的角色,忠實的把資料呈現給使用者;而真正在伺服器運作的,還是PHP等伺服端語言。
<mx:Application>標籤當中,增加了creationComplet的屬性,這個屬性的意思就是當頁面載入的同時所需要執行的動作,在這裡使用了creationComplete="myQuery.send();",意思就是:在頁面載入同時把 id 叫 myQuery 東西給我送出去。
而這裡所指的myQuery,指的其實就是下一行的 <mx:HTTPService id="myQuery" url="php/users.php" useProxy="false"></mx:HTTPService>。在這裡的url,指向的就是你要執行伺服端查詢的php檔案,絕對路徑或是相對路徑都可以。
在PHP裡面,我們會透過簡單的查詢程式將mySQL的資料內容取出來,並且輸出成XML語法。記住,php並沒有辦法直接將查詢的結果回傳給Flex,必須將資料轉換成XML的型態,才能夠解讀。
而我在php檔案當中,將資料輸出成
<?xml version="1.0" encoding="utf-8"?>
<users>
<user>
<username>Simon</username>
<useremail>simon@yahoo.com.tw</useremail>
</user>
<user>
<username>Linda</username>
<useremail>linda@yahoo.com.tw</useremail>
</user>
</users>
最後我們再透過 <mx:DataGrid>來擷取已經輸出的XML資料,dataProvider="{myQuery.lastResult.users.user}" 這一行指的是所要取得的資料內容,以{}來繫結所有的資料,透過節點來指定你要找的資料位置。
取出資料的方式非常簡單,只要你將 <mx:DataGridColumn>的dataField的值設定成與XML標籤一樣的名稱,Flex就可以自動的抓到所有的資料並且正確的把它呈現出來,更棒的是,它還可以根據不同欄位來做遞增或是遞減的排列,完全不需要你再寫一大堆的程式來辛苦的查詢排列。
將檔案輸出之後,打上網址執行看看吧!
Filed under: Adobe Flex

