Flash and Flex applications, examples and sources: Делаем приложение: Flex 2 + AMFPHP ================================================================================ Bjorn on 21 January, 2008 У нас имеется база данных, в которой будут хранится данные о зарегистрировавшихся пользователях и мы хотим просматривать эту информацию при помощи Flex приложения. Клиент. Создадим новое Flex приложение. В настройках Project->Properties->Flex Compiler укажем что приложение должно использовать services-config.xml. -locale en_US -services "services-config.xml" Код нашего mxml файла: .. private var usersDataProvider : ArrayCollection = new ArrayCollection(); private function getC():void { service.getOperation("getCities").send(); } private function getU():void { service.getOperation("getUsers").send(); } private function showUsersResult(event:ResultEvent):void { for(var i:int=0; i< event.result.users.length;i++){ usersDataProvider.addItem(event.result.users[i]); } //usersDataProvider = event.result.users; } private function showCitiesResult(event:ResultEvent):void { trace(event.result.city) } private function faultHandler(event:FaultEvent):void{ Alert.show(event.fault.faultString, "Error: " + event.fault.faultCode); trace(event.fault.message); } ]]> .. Для отправки данных используем метод getUsers(), результат получаем методом showUsersResult(event) и заполняем DataGrid Серверная часть. Для подключения к базе данных используется библиотека PEAR, вы можете использовать ее тоже или написать самому. Подключаются классы для использования. В этом приложении мы используем класс UsersVO.php, он должен находится ваш сайт/amfphp/services/com/g_info . В этой же папке находится и файл action.php в котором написаны используемые методы. Код класса UsersVO class UsersVO { public $id = 0; public $name = ''; public $password = ''; public $icq = ''; public $www = ''; public $phone = ''; public $email = ''; public $city = ''; var $_explicitType = "com.vo.UsersVO"; } ?> Обратите внимание на var $_explicitType = "com.vo.UsersVO" - здесь указан пусть к такому же файлу с классом, но уже во Flex приложении. --------------------------- Код класса action: include_once("PEAR/DB.php"); //require_once( "PEAR/connect.php" ); include_once( "InfoVO.php" ); include_once( "UsersVO.php" ); include_once( "CitiesVO.php" ); class action { function __construct() { } public function getUsers() { $dsn = array( 'phptype' => 'mysql', 'username' => 'bjorn02_bjorn', 'password' => 'Y67rDck9L', 'hostspec' => 'localhost', 'database' => 'bjorn02_cms', ); $options = array( 'debug' => 2, 'portability' => DB_PORTABILITY_ALL, ); $db =& DB::connect($dsn, $options); if (PEAR::isError($db)) die($db->getMessage()); $db->setFetchMode(DB_FETCHMODE_OBJECT); //$sql= "SELECT user_name FROM g_users WHERE user_id = 4"; $sql= "SELECT * FROM g_users WHERE city = 'Lviv'"; $res = $db->query($sql); $object = new InfoVO(); while ($row =& $res->fetchRow()) { $obj_model = new UsersVO(); $obj_model->id = (integer) $row->user_id; $obj_model->name = (string) $row->user_name; $obj_model->password = (string) $row->user_password; $obj_model->icq = (string) $row->icq; $obj_model->www = (string) $row->www; $obj_model->phone = (string) $row->phone; $obj_model->email = (string) $row->user_email; $obj_model->city = (string) $row->city; $users[]=$obj_model; } $object->users = $users; return $object; } } ?> Метод getUsers() возвращает клиенту объект UsersVO. Получилось не очень понятно, если есть вопросы и пожелания - пишите. Посмотреть приложение можно здесь, исходный код - source.