Flex を使った WEBアプリの基本(1)


ブラウザでダウンロード
http によるデータ送信
どのようなフォーマットで通信するかはともかくとして、
クライアントで発生したデータをサーバで取得する基本的な部分です

http の処理としては大きく分けて2通りありますが、
これが最も一般的な方法です
001.<?xml version="1.0" encoding="utf-8"?>
002.<mx:Application
003.    xmlns:mx="http://www.adobe.com/2006/mxml"
004.    initialize="initData();"
005.>
006. 
007.<mx:Script>
008.<![CDATA[
009. 
010.    import mx.controls.*;
011.    import mx.events.*;
012.    import mx.rpc.events.*;
013.    import mx.formatters.*;
014.    import flash.external.*;
015. 
016.    // *********************************************************
017.    // アプリケーションの初期化
018.    // *********************************************************
019.    public function initData():void {
020. 
021.        firebug("処理開始")
022. 
023.    }
024. 
025.    // *********************************************************
026.    // ログ表示
027.    // *********************************************************
028.    public function firebug(data:Object):void {
029.     
030.        var fmt:DateFormatter = new DateFormatter();
031.     
032.        fmt.formatString = "YYYY/MM/DD HH:NN:SS";
033.        var logdt:String = fmt.format( new Date );
034.     
035.        ExternalInterface.call(
036.            "console.log", logdt,
037.            data+""
038.        );
039.     
040.    }
041. 
042.    // *****************************************************
043.    // HTTPServiceを使用してHTTPリクエスト(GET)を行う
044.    // *****************************************************
045.    private function sendData():void {
046.        // リクエストするURLをセット
047.        srv.url = "response.php";
048. 
049.        srv.request.fld1 = fld1.text;
050.        srv.request.fld2 = fld2.text;
051.        srv.request.fld3 = fld3.text;
052. 
053.        // レスポンス結果のデータフォーマット
054.        srv.resultFormat = "text";
055.        srv.method = "GET";
056.        srv.send();
057. 
058.    }
059.     
060. 
061.    // *****************************************************
062.    // HTTPServiceが成功
063.    // *****************************************************
064.    private function resultHandler(e:ResultEvent):void {
065. 
066.        Alert.show(e.result.toString());
067. 
068.    }
069. 
070.    // *****************************************************
071.    // HTTPServiceでエラーが発生した
072.    // *****************************************************
073.    private function faultHandler(e:FaultEvent):void {
074.        Alert.show(e.fault.message);
075.    }
076. 
077.]]>
078.</mx:Script>
079. 
080.<mx:HTTPService
081.    id="srv"
082.    showBusyCursor="true"
083.    result="resultHandler(event)"
084.    fault="faultHandler(event)"
085./>
086. 
087.<mx:Form width="90%" height="90%">
088.    <mx:FormHeading label="http データ通信"/>
089.     
090.    <mx:FormItem
091.        label="フィールド1"
092.        labelStyleName="labelAlign"
093.         paddingBottom="30"
094.    >
095.        <mx:TextInput id="fld1" />
096. 
097.    </mx:FormItem>
098.    <mx:FormItem
099.        label="フィールド2"
100.        labelStyleName="labelAlign"
101.         paddingBottom="30"
102.    >
103.        <mx:TextInput id="fld2" />
104. 
105.    </mx:FormItem>
106.    <mx:FormItem
107.        label="フィールド3"
108.        labelStyleName="labelAlign"
109.         paddingBottom="30"
110.    >
111.        <mx:TextInput id="fld3" />
112. 
113.    </mx:FormItem>
114. 
115.    <mx:FormItem
116.        label=""
117.        labelStyleName="labelAlign"
118.         paddingBottom="30"
119.    >
120.        <mx:Button
121.            id="btn"
122.            label="送信"
123.            click="sendData()"
124.        />
125.    </mx:FormItem>
126. 
127. 
128.</mx:Form>
129. 
130.</mx:Application>
PHP 側のコード
基本的に、$_GET または $_POST を処理して決められたフォーマットで返すという事
しかしません。表に出無い部品として完全に裏方として徹します。

( セッションは普通に使えます )
1.<?
2.header( "Content-Type: text/html; Charset=utf-8" );
3.header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );
4. 
5.print_r($_GET);
6.?>