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


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

http の処理としては大きく分けて2通りありますが、
これが最も一般的な方法です
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
	xmlns:mx="http://www.adobe.com/2006/mxml"
	initialize="initData();"
>

<mx:Script>
<![CDATA[

	import mx.controls.*;
	import mx.events.*; 
	import mx.rpc.events.*;
	import mx.formatters.*;
	import flash.external.*;

	// *********************************************************
	// アプリケーションの初期化
	// *********************************************************
	public function initData():void {

		firebug("処理開始")

	}

	// *********************************************************
	// ログ表示
	// *********************************************************
	public function firebug(data:Object):void {
	
		var fmt:DateFormatter = new DateFormatter();
	
		fmt.formatString = "YYYY/MM/DD HH:NN:SS";
		var logdt:String = fmt.format( new Date );
	
		ExternalInterface.call(
			"console.log", logdt,
			data+""
		);
	
	}

	// *****************************************************
	// HTTPServiceを使用してHTTPリクエスト(GET)を行う
	// *****************************************************
	private function sendData():void {
		// リクエストするURLをセット
		srv.url = "response.php";

		srv.request.fld1 = fld1.text;
		srv.request.fld2 = fld2.text;
		srv.request.fld3 = fld3.text;

		// レスポンス結果のデータフォーマット
		srv.resultFormat = "text";
		srv.method = "GET";
		srv.send();

	}
	

	// *****************************************************
	// HTTPServiceが成功
	// *****************************************************
	private function resultHandler(e:ResultEvent):void {

		Alert.show(e.result.toString());

	}

	// *****************************************************
	// HTTPServiceでエラーが発生した
	// *****************************************************
	private function faultHandler(e:FaultEvent):void {
		Alert.show(e.fault.message);
	}

]]>
</mx:Script>

<mx:HTTPService
	id="srv"
	showBusyCursor="true"
	result="resultHandler(event)"
	fault="faultHandler(event)"
/>

<mx:Form width="90%" height="90%">
	<mx:FormHeading label="http データ通信"/>
	
	<mx:FormItem
		label="フィールド1"
		labelStyleName="labelAlign"
		 paddingBottom="30"
	>
		<mx:TextInput id="fld1" />

	</mx:FormItem>
	<mx:FormItem
		label="フィールド2"
		labelStyleName="labelAlign"
		 paddingBottom="30"
	>
		<mx:TextInput id="fld2" />

	</mx:FormItem>
	<mx:FormItem
		label="フィールド3"
		labelStyleName="labelAlign"
		 paddingBottom="30"
	>
		<mx:TextInput id="fld3" />

	</mx:FormItem>

	<mx:FormItem
		label=""
		labelStyleName="labelAlign"
		 paddingBottom="30"
	>
		<mx:Button
			id="btn"
			label="送信"
			click="sendData()"
		/>
	</mx:FormItem>


</mx:Form>

</mx:Application>
PHP 側のコード
基本的に、$_GET または $_POST を処理して決められたフォーマットで返すという事
しかしません。表に出無い部品として完全に裏方として徹します。

( セッションは普通に使えます )
<?
header( "Content-Type: text/html; Charset=utf-8" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );

print_r($_GET);
?>