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