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」としてまったく認識されないかのように起動します。アラートはこれに反しており、データベースを確認すると、新しいユーザーが正常に作成されています。私は何を間違っていますか?これと同じタイプのものが、私が作成した他のアプリケーションで動作するようになりましたが、このアプリケーションでは動作しません。false
Y
N