【问题标题】:dynamically populating textfields in Flashbuilder在 Flash Builder 中动态填充文本字段
【发布时间】:2010-07-13 16:22:29
【问题描述】:

我正试图以一种我可以使用的方式将数据纳入我的项目。我想在我的 Flashbuilder 应用程序中使用 MySQL 和 PHP,但我没有填充数据网格。

为简单起见,在我的数据库表中,我有 3 列 "ID, Title & Content"
我想用它来填充我的 flashbuilder 项目中的不同状态。

通常在网页中我可以在 sql 语句中说 SELECT * FROM table WHERE ID = 1 获取第一行信息,然后我可以将标题和内容放在页面上我想要的位置

我可以将查询更改为 SELECT * FROM table WHERE ID = 2 以填充第 2 页以获取其标题和内容。

在 flashbuilder 中,所有内容都在同一页面上,我不明白如何使用数据库中的单个字段填充标题或内容区域的单个文本字段。

看来网上所有的例子基本上都是针对数据网格的。

有人可以帮帮我吗?

【问题讨论】:

    标签: php mysql apache-flex flexbuilder flash-builder


    【解决方案1】:

    我会尽力帮忙的。

    您有数据库表(ID、标题、内容)。

    继续用 PHP 创建一个 Web 服务,它将 ping 数据库并检索数据。我对 PHP 不太了解,所以无法提供具体信息。如果可能,我建议使用 AMFPHP 或 ZendAMF 之类的东西在 Flex 和 PHP 之间来回传输数据。

    在 Flex 中,您可以使用 RemoteObject、WebService 或 HTTPService 检索数据。你会以某种方式取回数据。出于本示例的目的,我假设您正在使用一种 AMF 形式并拥有一个值对象数组。

    每个对象都包含一个 ID、标题和内容属性,代表数据库表中的一行。

    现在,你如何处理这个数组?尝试在单个文本输入中显示数据集合会很奇怪。假设您想创建一个表单来编辑第一项:

        <Form>
    <formItem label="title">
     <textInput id="titleInput" text="{resultsFromPHP[0].title}" />
    </formitem>
    <formItem label="content">
     <textInput id="contentInput" text="{resultsFromPHP[0].content}" />
    </formitem>
    <formItem >
     <button label="Process Input" click="processInput()" />
    </formitem>
    </form>
    

    所以,您有一个允许输入的表单,并且有一个按钮。只需编写点击处理程序:

    protected function processInput():void{
     resultsFromPHP[0].content = contentInput.text
     resultsFromPHP[0].title = titleInput.text
     // call other PHP Service to update data
    }
    

    这有帮助吗?

    这是我在浏览器中编写的伪代码,很可能需要调整才能编译。

    【讨论】:

    • 嗯,我确实得到了一些工作,我很感激你让我走上这条道路!我收到一些绑定错误“使用方括号运算符时,数据绑定将无法检测到更改。对于数组,请改用 ArrayCollection.getItemAt()。” 受保护的函数 fetchDB(event:FlexEvent):void { getResults.token = pagesService.getAllPages(); } <label x="10" y="10" width="300" height="100" creationcomplete="fetchDB(event)" text.page1="{getResults.lastResult[0].title}" fontsize="24" text.page2="{getResults.lastResult[1].title}"></label>
    • 您是否收到错误或警告?我建议将 getResults.lastResults 保存到本地变量中,而不是直接访问您的服务。在您的结果处理程序中执行此操作。然后按照警告建议修改您的代码: text.Page1="{savedResult.getItemAt(0).title}"
    • 你是对的......我收到了警告。我会试一试。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-26
    • 2015-01-02
    • 1970-01-01
    • 2021-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多