與PHP整合的第一步

這是個很簡單的程式,但是你首先必須要具備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就可以自動的抓到所有的資料並且正確的把它呈現出來,更棒的是,它還可以根據不同欄位來做遞增或是遞減的排列,完全不需要你再寫一大堆的程式來辛苦的查詢排列。

將檔案輸出之後,打上網址執行看看吧!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s