Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex Flex中数据库标记的绘图和绑定结果_Apache Flex_Flex4_Flex4.5_Flex4.6 - Fatal编程技术网

Apache flex Flex中数据库标记的绘图和绑定结果

Apache flex Flex中数据库标记的绘图和绑定结果,apache-flex,flex4,flex4.5,flex4.6,Apache Flex,Flex4,Flex4.5,Flex4.6,我在学习Flex方面取得了巨大的进步,我非常喜欢它,但是,有一件事我找不到太多帮助,那就是如何在Flex中绑定查询结果。我已经设法创建了列表等,没有问题,但当我试图将一个特定的值绑定到一个变量时,它不起作用 首先,这里是我的PHP函数: public function getRepnameByUsername($itemID) { $stmt = mysqli_prepare($this->connection, "SELECT * FROM $this->tabl

我在学习Flex方面取得了巨大的进步,我非常喜欢它,但是,有一件事我找不到太多帮助,那就是如何在Flex中绑定查询结果。我已经设法创建了列表等,没有问题,但当我试图将一个特定的值绑定到一个变量时,它不起作用

首先,这里是我的PHP函数:

public function getRepnameByUsername($itemID) {

        $stmt = mysqli_prepare($this->connection, "SELECT * FROM $this->tablename where Username=?");
        $this->throwExceptionOnError();

        mysqli_stmt_bind_param($stmt, 'i', $itemID);        
        $this->throwExceptionOnError();

        mysqli_stmt_execute($stmt);
        $this->throwExceptionOnError();

        mysqli_stmt_bind_result($stmt, $row->RepID, $row->Username, $row->FirstName, $row->Surname, $row->SerialKey);

        if(mysqli_stmt_fetch($stmt)) {
          return $row;
        } else {
          return null;
        }

    }
当然,我在Flex中的函数我没有包含所有的变量,因为它们非常明显,我唯一遇到问题的是在这个函数中声明的repServ

            protected function btnSubmitUser_clickHandler(event:MouseEvent):void
        {
            username = txtUsername.text;
            password = txtPassword.text;
            serialno = txtSerialNo.text;
            userName.writeUTFBytes(username);
            passWord.writeUTFBytes(password);
            serialNo.writeUTFBytes(serialno);
            EncryptedLocalStore.setItem("Username", userName);
            EncryptedLocalStore.setItem("Password", passWord);
            EncryptedLocalStore.setItem("Serial", serialNo);
            var repServ:Repname = new Repname();
            getRepnameByUsernameResult.token = repnameService.getRepnameByUsername(username);
            repServ = getRepnameByUsernameResult.lastResult;
            repid = repServ.RepID;
            RepID.writeInt(repid);
            EncryptedLocalStore.setItem("Rep", RepID);
        }
抛出错误的行是repid=repServ.repid,我认为这与我如何通过上面的行绑定它有关。这样做的最佳方式是什么

谢谢
我发现你的代码有一些地方不对劲。首先,远程调用是异步的。这意味着它们在不同的线程中运行。因此,如果我们看一下这段代码:

        getRepnameByUsernameResult.token = repnameService.getRepnameByUsername(username);
        repServ = getRepnameByUsernameResult.lastResult;
在您尝试访问结果时,getRepnameByUsername服务很可能尚未完成执行或返回任何内容。相反,您应该侦听服务上的结果事件。概念上是这样的:

        getRepnameByUsernameResult.addEventListener(ResultEvent.RESULT, onMyResult);
        getRepnameByUsernameResult.token = repnameService.getRepnameByUsername(username);
getRepnameByUsernameResult.lastResult['repid']
然后在结果处理程序中,您可以处理结果:

protected function onMyResult(event:ResultEvent):void{
            repServ = getRepnameByUsernameResult.lastResult as Repname;
            repid = repServ.RepID;
            RepID.writeInt(repid);
            EncryptedLocalStore.setItem("Rep", RepID);
}
我看到的第二个错误是,您没有将lastResult强制转换为实际的对象类型。我本以为这会引发运行时错误。我在上面的代码中添加了转换

你没有告诉我们你使用的是哪种服务。(HTTPService、RemoteObject或WebService)

看起来您从未使用结果数据创建过名为Repname的对象。如果您使用的是AMF(RemoteObject),则可以自动将服务器端对象转换为客户端对象。但是,您可能必须在服务器上将查询转换为该对象,以便能够自动转换。如果您使用的是WebService或HTTPService,则必须解析客户端中的数据以将其转换为Repname对象

lastResults的结果很可能是泛型对象。您可以使用以下语法访问特定属性:

        getRepnameByUsernameResult.addEventListener(ResultEvent.RESULT, onMyResult);
        getRepnameByUsernameResult.token = repnameService.getRepnameByUsername(username);
getRepnameByUsernameResult.lastResult['repid']

您可以将其用作通用对象,也可以手动转换。

您所说的很有道理。然而,我仍然没有得到任何通过不幸:(我相信我会得到它的权利,因为你已经明确引导我进入正确的轨道。对不起,我再次犯了一个错误,我在我的代码中,因为我试图键入它,当我复制粘贴,它工作得很好。非常感谢你