flex php単純通信例

5001 ワード

Flexは強力ですが、Flexにデータベースを操作するには他のスクリプト言語、PHPやaspが必要です.net.FlexとPHPで通信を試み、テストに成功しました.最初はネットで他の人の経験を探していましたが、自分のところに置くとなかなかデバッグできず、いろいろな、わけのわからない間違いが発生しました.次に、Flexの公式ドキュメントとインスタンスを参照します.Flexのマニュアルで「HTTPService」を検索すると、MXMLファイルでタブを使用してHTTPServiceオブジェクトを表すという記述があります.HTTPServiceオブジェクトのsend()メソッドを呼び出すと、指定したURLに対するHTTP要求が発行され、HTTP応答が返されます.指定したURLにパラメータを渡すことを選択できます.サーバベースのプロキシサービスが使用されていない場合は、HTTP GETまたはPOSTメソッドのみが使用できます.useProxyプロパティをtrueに設定し、サーバベースのプロキシサービスを使用する場合は、HTTP HEAD、OPTIONS、TRACE、DELETEメソッドも使用できます.
マニュアルのHTTPServiceの属性と方法を見て、公式のインスタンスソースコードを読んで、FlexとPHP通信の例を書きました.プログラムはFlexからPHPに1つの数字を提出し、PHPはまず数字かどうかを判断し、もしそうなら、この数字に10を乗じて返す.そうでない場合は、中国語のプロンプトメッセージ「数値ではありません」を返します.
デモクリック:FlexとPHP通信
ソースコードは次のとおりです.
Demo.mxmlのソースコード:
<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

 

    <mx:Script>

        <![CDATA[

            import mx.rpc.events.ResultEvent;

            import mx.rpc.events.FaultEvent;

            import mx.controls.Alert;

 

            public function handleXml(event:ResultEvent):void

            {

                TextArea1.text = event.result.toString();

                TextInput2.text = event.result.option.ReturnData;

            }

 

            public function handleFault(event:FaultEvent):void

            {

               Alert.show(event.fault.faultString, "Error");               

            } 

        ]]>

    </mx:Script> 

 

    <mx:HTTPService id="xmlRpc" 

        url="http://wangkangle.com/apps/flex_test.php"

           result="handleXml(event)" 

        fault="handleFault(event)" 

        resultFormat="e4x"> 

        <mx:request>

            <Data1>{TextInput1.text}</Data1>

        </mx:request>

    </mx:HTTPService>

 

    <mx:TextInput x="10" y="10" id="TextInput1" />

    <mx:Button x="178" y="10" label="Button" id="Button1" click="xmlRpc.send()"/>

    <mx:TextInput x="10" y="40" id="TextInput2"/>

    <mx:TextArea x="10" y="70" height="216" width="233" id="TextArea1"/>

 

</mx:Application>

 
 
PHPのソースコード(Demo.php)は以下の通り.
<?php

    if    (is_numeric($_REQUEST["Data1"]))

    {

        $ReturnData = $_REQUEST["Data1"]*10;

    }

    else

    {

        $ReturnData = "    ";

    }

 

    $results[] = "<options>";

    $results[] = "<option><ReturnData>".$ReturnData."</ReturnData></option>";

    $results[] = "</options>";

 

    print implode("
", $results); exit; ?>

 
 
入力文字が数字ではないがFlexに「数字ではない」と表示されずに文字化けして表示する場合はDemo.phpファイルをUTF-8として保存すると、正しい中国語が表示されます.HTTPServiceでは、methodのプロパティを追加することもできます.値はPOSTまたはGETに設定でき、デフォルトはGETです.この属性を追加すると、PHPの$REQUEST["Data 1"]は$_と書くことができますGET["Data 1"]または$POST["Data1"]