<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請您在轉(zhuǎn)載時注明出處http://www.tkk7.com/sxyx2008/謝謝合作!!!

    雪山飛鵠

    溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請您在轉(zhuǎn)載時注明出處http://www.tkk7.com/sxyx2008/謝謝合作!!!

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks
    偶爾寫寫php感覺心情還是蠻舒暢的(Java里的Struts+Hibernate+Spring寫久了),寫寫php才知道,這種被解放的感覺真好。不得不說,php是一種服務(wù)器端比較精辟的語言,難怪崇拜者這么多。就來整整flex基于php的交互,看好了,這里要介紹的不是通過flex里面的HttpService組件與php交互,而是借助AMFPHP通過RemoteObject方式來交互。
    關(guān)于amfphp環(huán)境的搭建,請參考本人寫的amfphp環(huán)境搭建教程,當(dāng)然里面寫的比較粗略,有不清粗的可以聯(lián)系我。
    先來看看php端代碼
    ProductServices.php
    <?php
    class ProductServices{
        
    /**
        *query product list
        
    */
        
    function getProductList(){
            
    $link=@mysql_connect("localhost", "root", "") or die("Could not connect");
            
    mysql_select_db("compass",$link);
            
    mysql_query("set names utf8",$link);
            
    $result = mysql_query("SELECT * FROM product",$link);
            
    $array=array();
            
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
                
    array_push($array,$row);
            }
            
    mysql_free_result($result);
            
    mysql_close($link);
            
    return $array;
        }



        
    function findProductById($id){
            
    $link=@mysql_connect("localhost", "root", "") or die("Could not connect");
            
    mysql_select_db("compass",$link);
            
    mysql_query("set names utf8",$link);
            
    $result = mysql_query("SELECT * FROM product where id= ".$id,$link);
            
    $array=array();
            
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
                
    array_push($array,$row);
            }
            
    mysql_free_result($result);
            
    mysql_close($link);
            
    return $array;
        }

    }
    ?>

    在ProductServices.php文件中,定義了一個類ProductServices,里面封裝了兩個方法,getProductList(),findProductById($id)里面內(nèi)容很簡單,一個是全部查詢商品,一個是根據(jù)Id查詢商品

    注意該文件存放的位置C:\inetpub\wwwroot\amfphp\services\ 這樣可以被amfphp的資源管理器檢索到
     


    編寫flex端代碼
    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
                   xmlns:s
    ="library://ns.adobe.com/flex/spark" 
                   xmlns:mx
    ="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
                   creationComplete
    ="ro.getOperation('getProductList').send()"
                   
    >
        
    <!-- 
            ro.getOperation('getProductList').send() 
            ro為RemoteObject的Id
            ro.getOperation('getProductList')獲取php文件中的方法名,及要調(diào)用服務(wù)器端的那個方法
            send()發(fā)送請求,在send中可傳遞參數(shù),多個參數(shù)之間用逗號分隔,參數(shù)名要與服務(wù)器端的參數(shù)名一致
        
    -->
        
    <fx:Declarations>
            
    <!-- 將非可視元素(例如服務(wù)、值對象)放在此處 -->
            
            
    <s:RemoteObject id="ro" 
                            destination
    ="amfphp"  
                            source
    ="ProductServices" 
                            fault
    ="getProductList_faultHandler(event)" 
                            result
    ="getProductList_resultHandler(event)"
                            endpoint
    ="http://192.168.3.11/amfphp/gateway.php">
            
    </s:RemoteObject>
            
            
    <!--
                RemoteObject中的destination需要與src目錄下的services
    -config.xml中定義的destination的Id保持一致
                source
    ="ProductServices"要調(diào)用服務(wù)器端的那個php類,如果存在包的話注意包名.類名
                fault 失敗時響應(yīng)的方法
                result 成功時的方法
                endpoint
    ="http://192.168.3.11/amfphp/gateway.php" 正確訪問gateway.php的地址
            
    -->
            
        
    </fx:Declarations>
        
        
    <fx:Script>
            
    <![CDATA[
                import mx.collections.ArrayCollection;
                import mx.controls.Alert;
                import mx.rpc.events.FaultEvent;
                import mx.rpc.events.ResultEvent;
                import mx.utils.ArrayUtil;
                
                [Bindable]
                internal 
    var dp:ArrayCollection;
                
                
                
                
    //amfphp請求成功時調(diào)用方法
                protected function getProductList_resultHandler(event:ResultEvent):void
                {
                    dp
    =new ArrayCollection(ArrayUtil.toArray(event.result));
                }
                
    //amfphp請求失敗時調(diào)用方法
                protected function getProductList_faultHandler(event:FaultEvent):void
                {
                    Alert.show(
    "失敗了",event.fault.message);                
                }
                
            ]]
    >
        
    </fx:Script>
        
        
        
    <s:layout>
            
    <s:HorizontalLayout/>
        
    </s:layout>
        
    <s:DataGrid width="519" height="292" dataProvider="{dp}" requestedRowCount="4">
            
    <s:columns>
                
    <s:ArrayList>
                    
    <s:GridColumn dataField="id" headerText="編號"></s:GridColumn>
                    
    <s:GridColumn dataField="name" headerText="商品名稱"></s:GridColumn>
                    
    <s:GridColumn dataField="price" headerText="單價"></s:GridColumn>
                    
    <s:GridColumn dataField="descption" headerText="描述"></s:GridColumn>
                
    </s:ArrayList>
            
    </s:columns>
        
    </s:DataGrid>
        
    </s:Application>

    必須在flex工程的src目錄下存放一個名為services-config.xml
    <? version="1.0" encoding="UTF-8"?>
    <services-config>
        
    <services>
            
    <service id="sabreamf-flashremoting-service"
                     class
    ="flex.messaging.services.RemotingService"
                     messageTypes
    ="flex.messaging.messages.RemotingMessage">
                
    <destination id="amfphp">
                    
    <channels>
                        
    <channel ref="my-amfphp"/>
                    
    </channels>
                    
    <properties>
                        
    <source>*</source>
                    
    </properties>
                
    </destination>
            
    </service>
        
    </services>

        
    <channels>
            
    <channel-definition id="my-amfphp" class="mx.messaging.channels.AMFChannel">
                
    <endpoint uri="http://192.168.3.11/amfphp/gateway.php" class="flex.messaging.endpoints.AMFEndpoint"/>
            
    </channel-definition>
        
    </channels>
    </services-config>

    需要將該文件編譯到環(huán)境中去

    效果圖

    點(diǎn)我下載代碼
    posted on 2011-10-28 11:52 雪山飛鵠 閱讀(2201) 評論(0)  編輯  收藏 所屬分類: flex+php
    主站蜘蛛池模板: 在线免费观看一级毛片| 一级毛片人与动免费观看| 亚洲无砖砖区免费| 亚洲综合在线视频| 亚洲AV无码成人专区片在线观看| 国产精品亚洲综合专区片高清久久久| 国产在线观看免费视频播放器| 免费无码看av的网站| 白白国产永久免费视频| 国产精品视频免费一区二区三区| 国产高清免费观看| 亚洲福利在线播放| ZZIJZZIJ亚洲日本少妇JIZJIZ| 亚洲综合在线另类色区奇米| 亚洲国产成人片在线观看| 亚洲A∨无码一区二区三区| 91久久亚洲国产成人精品性色| 亚洲中文字幕久久精品无码2021| 久久久久精品国产亚洲AV无码| 亚洲国产成人久久一区二区三区| 国产亚洲精品2021自在线| 一本到卡二卡三卡免费高| 99视频在线免费观看| 99爱免费观看视频在线| 国产在线jyzzjyzz免费麻豆| 午夜免费福利网站| 亚洲国产精品13p| 国产亚洲精品自在久久| 78成人精品电影在线播放日韩精品电影一区亚洲 | 亚洲AV无码成人精品区天堂 | 亚洲AV无码久久| 亚洲毛片免费视频| 亚洲无人区码一二三码区别图片| 国产精品亚洲а∨天堂2021| 国产高潮久久免费观看| 午夜免费啪视频在线观看| 两个人的视频高清在线观看免费 | 日本一道在线日本一道高清不卡免费| 亚洲&#228;v永久无码精品天堂久久 | 免费久久人人爽人人爽av | 午夜成人无码福利免费视频|