flex DataGrid 编辑后保存

 <?php
require_once ('./vo/org/corlan/VOAuthor.php');

//conection info
define( "DATABASE_SERVER", "localhost");
define( "DATABASE_USERNAME", "root");
define( "DATABASE_PASSWORD", "");
define( "DATABASE_NAME", "mysite");

class MyService {

    public function getData() {
        //connect to the database.
        $mysql = mysql_connect(DATABASE_SERVER, DATABASE_USERNAME, DATABASE_PASSWORD);
        mysql_select_db(DATABASE_NAME);
        mysql_query("SET NAMES UTF8");
        //retrieve all rows
        $query = "SELECT id_aut, fname_aut, lname_aut FROM authors_aut ORDER BY fname_aut";
        $result = mysql_query($query);

        $ret = array();
        while ($row = mysql_fetch_object($result)) {
            $tmp = new VOAuthor();
            $tmp->id_aut = $row->id_aut;
            $tmp->fname_aut = $row->fname_aut;
            $tmp->lname_aut = $row->lname_aut;
            $ret[] = $tmp;
        }
        mysql_free_result($result);
        return $ret;
    }

    public function saveData($author) {
        if ($author == NULL)
            return NULL;
        //connect to the database.
        $mysql = mysql_connect(DATABASE_SERVER, DATABASE_USERNAME, DATABASE_PASSWORD);
        mysql_select_db(DATABASE_NAME);
        //save changes
        $query = "UPDATE authors_aut SET fname_aut='".$author->fname_aut."', lname_aut='".$author->lname_aut."' WHERE id_aut=". $author->id_aut;
        $result = mysql_query($query);
        return NULL;
    }
}
?>

------------amfphp\services\vo\org\VOAuthor.php-----------------
<?php
class VOAuthor {

    public $id_aut;
    public $fname_aut;
    public $lname_aut;

    // explicit actionscript class
    var $_explicitType = "org.corlan.VOAuthor";
}
?>

--------------------------mxml文件------------------------------------
--------------------RemotingVOAuthor.mxml----------------------


----------------org\corlan\VOAuthor.as-----------------


//----------------------------分析-------------------------------
1 面向对象的设计思路,抽象出两个模型,一个是php,一个是.as格式,互相对应,这两个类的成员变量命名是一致的。

2 注意文件的组织方式,模型文件均放在相关目录下例如:org\corlan\VOAuthor.as,类文件首字母大写

3 注意{myRemote.getData()},调用以后没有立即处理数据,而是通过"{myRemote.getData.lastResult}"的lastResult属性去读取缓存中的访问结果。

4 前端的mxml的script中:
var dataGrid:DataGrid = event.target as DataGrid; //获取当前编辑的单元格对象
var dsColumnIndex:Number = event.columnIndex;   //列号
var col:DataGridColumn = dataGrid.columns[dsColumnIndex]; //?
var newValue:String = dataGrid.itemEditorInstance[col.editorDataField]; //读取新值,这里要研究下
                                                                                                                 //dataGrid各个属性的含义

var author:VOAuthor = event.itemRenderer.data as VOAuthor; //获取当前显示的单元格对象
author[dsFieldName] = newValue; //更新显示状态

5 webservice的方式直接调用php中的存储方法:
myRemote.saveData(author);

你可能感兴趣的:(mysql,PHP,webservice,Flex,actionscript)