首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Flex数据管理和PHP时遇到的问题

使用Flex数据管理和PHP时遇到的问题
EN

Stack Overflow用户
提问于 2011-06-02 09:30:35
回答 2查看 165关注 0票数 0

我正在使用FlashBuilder4.5 for PHP中的薪资管理系统。我正在使用一个Flex数据管理系统。我有以下几个问题:

  1. 当我向数据网格添加一个项目而不提交它时,我无法删除它。这一点是可以理解的,因为只有当项在数据库中并且在提交到数据库之前我才能获得该项的id (主键)时,delete才能工作。

当我删除项时,应该从数据网格中删除它(这可以通过从datagrid的数据提供程序中删除项来实现),但问题是当我提交它时-它保存到数据库。我找不到解决这个问题的办法。

什么是Flex 4的好书/教程,重点介绍PHP和Flex企业应用程序开发,并举例说明应用程序开发?

EN

回答 2

Stack Overflow用户

发布于 2011-06-02 17:20:30

这是我在这种情况下所做的。对于我的dataProvider中还没有保存的行(它们有ID=0或其他东西),我只需使用以下内容删除它们:

代码语言:javascript
复制
myArrayCollection.removeItemAt(myArrayCollection.getItemIndex(myDataGrid.selectedItem));

这样,任何被删除的行都不会到达后端。

票数 0
EN

Stack Overflow用户

发布于 2013-02-26 13:40:43

我没有使用datagrid (或者ArrayCollection作为dataProvider),所以尽管@Jason的解决方案一般都能工作,但它并不适合我的具体情况。

对于Flex中的数据托管删除方法,我使用item而不是itemID解决了“无法删除未提交项”的问题。Flash的自动生成ActionScript方法和PHP代码使用itemID作为参数,在将记录保存到数据库后才能对数据进行管理删除。在DELETE方法中使用实际的项引用作为param可以删除已提交和未提交的更改。然后,必须修改PHP代码。

我使用服务器端输入,因此修改后的PHP代码(类似于FB自动生成的PHP代码)如下所示:

代码语言:javascript
复制
/**
 * Deletes the item corresponding to the passed primary key value from 
 * the table. Note: NOT using primary key anymore - use item reference.
 *
 * Add authorization or any logical checks for secure access to your data 
 *
 * @param MessageScheduleItem $item
 * @return void
 */
public function delete_messageScheduleItem($item) {

    $stmt = mysqli_prepare($this->connection, "DELETE FROM $this->tablename WHERE ID = ?");
    $this->throwExceptionOnError();

    mysqli_stmt_bind_param($stmt, 'i', $item->ID);
.
.
... etc.

然后,Flex代码:

代码语言:javascript
复制
messageScheduleItemService.delete_messageScheduleItem(item);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6212702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档