0

Flex Builder 3 でフォームを作成しています。このフォームは、 を介して PHP ドキュメントに POST しHTTPrequest、テキスト応答で返されます。を使用して、が POST されたデータを送信し、応答が正しく返されることAlert.show()を確認しました。HTTPrequest次の一連の操作を実行するために、条件ステートメントで応答を使用しようとしています。

<![CDATA[

import mx.rpc.events.ResultEvent;
import mx.controls.Alert;

public var resCreate:String = new String;

private function returnCreate(event:ResultEvent):void{
resCreate = String(event.result);       
resultCreation();       
}

private function resultCreation():void{
Alert.show(resCreate);
if (resCreate == "Y"){
    currentState = "LogIn";
}
    else {      
    Alert.show("User already exists.");
    currentState = "NewEmployee";
    }
}

]]>

</mx:Script>

<mx:HTTPService 
        id="createSend" 
        url="create.php" 
        useProxy="false" 
        method="POST" 
        resultFormat="text" 
        result ="returnCreate(event)">
    <mx:request xmlns="">
        <username>{textinput9.text}</username>      
        <password>{textinput13.text}</password>    
    </mx:request>
</mx:HTTPService>

変数の内容を確認する必要がありAlert.show()ます。これは からの応答でHTTPrequest、新しいユーザーが作成された場合は「Y」、ユーザーがデータベースに既に存在する場合は「N」と表示されます。これは正常に動作しています。初めて新しいユーザーを作成すると「Y」が表示され、そのユーザーを再度作成しようとすると「N」が表示されます。私もこれをしました:

 Alert.show(String(resCreate == "Y"));

そして、答えが " " か " "trueかによって、ブール値の or を受け取りました。これにより、スクリプトが応答を認識していることがわかりますが、条件ステートメント内でそれを拒否しているだけです。条件で使用しようとすると、「else」内のコードのみが、resCreate が「Y」としてまったく認識されないかのように起動します。アラートはこれに反しており、データベースを確認すると、新しいユーザーが正常に作成されています。私は何を間違っていますか?これと同じタイプのものが、私が作成した他のアプリケーションで動作するようになりましたが、このアプリケーションでは動作しません。falseYN

4

0 に答える 0