0

我正在 Flex Builder 3 中构建一个表单,它应该通过一个 POST 到一个 php 文档HTTPrequest并返回一个文本响应。使用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"));

我收到一个布尔值truefalse取决于答案是“ Y”还是“ N”。这就是我知道我的脚本正在识别响应的方式,但它只是在条件语句中拒绝这样做。当我尝试在条件中使用它时,只有“else”中的代码才会触发,就好像 resCreate 根本不被识别为“Y”一样。警报掩盖了这一点,当我检查我的数据库时,新用户已成功创建。我究竟做错了什么?我已经在我编写的其他应用程序中得到了同样类型的东西,但在这个应用程序中没有。

4

0 回答 0