flexとPHPやCGI、Strutsとの接続について考える。
■概要
Flex側としてはmx:HTTPServiceで、
・フォームから入力されたデータをPHPに渡すことはできる
・その処理結果をPHPから受け取ることができる。
そこで、PHPとしては、
・受け取ったデータをもとに処理をして、
・その結果をテキストで返す
ということをして、flexからPHPで処理をして、結果を表示するシステムが作れる。
今回は、テキストで返しているけど、もちろん、XMLで返すことも簡単。
今回は、足し算プログラムなので、答えだけだから、テキストで返している。
■足し算プログラム
こんな画面から、
![](https://blogimg.goo.ne.jp/user_image/47/01/17e8f8f5e4aa5536bffaa0521c799518.jpg)
足す数、足される数(下の図の1と2)を入力して「do」ボタンをクリックすると
![](https://blogimg.goo.ne.jp/user_image/77/c7/29dedb0997364931a240388ca3f390fe.jpg)
なふうに、答え(3)を表示する、足し算プログラム
■ソース
Flex側(tashizan.mxml)
<?xml version="1.0" encoding="utf-8"?> <!-- 足し算プログラム --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"> <!-- 返り値をセットする ActionScript --> <mx:Script> <![CDATA[ import mx.utils.ObjectUtil; import mx.rpc.events.ResultEvent; private function svaccess_onResult(e:ResultEvent):void { ans.text = ObjectUtil.toString(e.result); } ]]> </mx:Script> <!-- HTTPで送受信する --> <mx:HTTPService id="svaccess" url="/tashizan/keisan.php" result="svaccess_onResult(event)"> <mx:request> <q1>{q1.text}</q1> <q2>{q2.text}</q2> </mx:request> </mx:HTTPService> <!-- フォームの内容 --> <mx:Form width="100%" height="100%"> <mx:Canvas width="250" height="100" > <mx:FormItem x="10" y="20"> <mx:TextInput id="q1" width="30"/> </mx:FormItem> <mx:Label x="55" y="20" text="+" /> <mx:FormItem x="60" y="20"> <mx:TextInput id="q2" width="30"/> </mx:FormItem> <mx:Label x="105" y="20" text="=" /> <mx:FormItem x="110" y="20"> <mx:TextInput id="ans" width="30"/> </mx:FormItem> <mx:FormItem x="160" y="20" > <mx:Button label="do" width="50" click="svaccess.send()"/> </mx:FormItem> </mx:Canvas> </mx:Form> </mx:Application> |
これを、コンパイル(mxmlc tashizan.mxml)して、tashizan.swfファイルをつくり、
そのtashizan.swfを、htdocsの下の、tashizanの下(htdocs/tashizan)においている。
PHP(keisan.php)
<?PHP echo $_GET['q1']+$_GET['q2']; ?> |
このkeisan.phpを、htdocsの下の、tashizanの下(htdocs/tashizan)においている。