Використання компонентів HTTPService
ADO в Delphi AJAX Android C++ CakePHP CMS COM CSS Delphi Flash Flex HTML Internet Java JavaScript MySQL PHP RIA SCORM Silverlight SQL UML XML Бази даних Веб-розробка Генетичні алгоритми ГІС Гітара Дизайн Економіка Інтелектуальні СДН Колір Масаж Математика Медицина Музика Нечітка логіка ООП Патерни Подання знань Розкрутка сайту, SEO САПР Сесії в PHP Системне програмування Системний аналіз Тестологія Тестування ПЗ Фреймворки Штучний інтелект
|
Використання компонентів HTTPServiceHTTPServiceМожна використовувати компонент HTTPService з будь-якою технологією, що використовується на стороні сервера, включаючи сторінки PHP, ColdFusion, JavaServer Pages (JSPs), Java servlets, Ruby on Rails і сторінки Microsoft ASP. Для перегляду інформації про компонент HTTPService, див. mx.rpc.http.mxml.HTTPService. Робота з даними PHP і SQLКомпонент Flex’у HTTPService можна використовувати в поєднанні з PHP і системою керування базами даних SQL для відображення результатів запиту до бази даних у Flex- застосунках, і щоб помістити інформацію в базу даних. Для виконання запиту бази даних можна викликати сторінку PHP з GET або POST. Можна відформатувати дані результату запиту в структурі XML і повернути структуру XML до Flex-застосунку в HTTP-відповіді. Коли результат повернено до Flex- застосунку, можна відобразити його в одному або кількох елементах керування інтерфейсу користувача. Код MXMLВ наступному прикладі Flex- застосунок викликає PHP- сторінку з методом POST. PHP-сторінка робить запит до таблиці бази даних в MySQL під назвою users. Результати запиту задаються як XML, і запит повертає XML до Flex- застосунку, де він пов'язаний з властивістю dataProvider елементу керування DataGrid, та виведений в DataGrid . Flex-застосунок також надсилає ім'я користувача та адресу електронної пошти нових користувачів на сторінку PHP, яка поміщає інформацію в таблицю бази даних. <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns="*" creationComplete="send_data()"> <mx:Script> <![CDATA[ private function send_data():void { userRequest.send(); } ]]> </mx:Script> <mx:Form x="22" y="10" width="493"> <mx:HBox> <mx:Label text="Username"/> <mx:TextInput id="username"/> </mx:HBox> <mx:HBox> <mx:Label text="Email Address"/> <mx:TextInput id="emailaddress"/> </mx:HBox> <mx:Button label="Submit" click="send_data()"/> </mx:Form> <mx:DataGrid id="dgUserRequest" x="22" y="128" dataProvider="{userRequest.lastResult.users.user}"> <mx:columns> <mx:DataGridColumn headerText="User ID" dataField="userid"/> <mx:DataGridColumn headerText="User Name" dataField="username"/> </mx:columns> </mx:DataGrid> <mx:TextInput x="22" y="292" id="selectedemailaddress" text="{dgUserRequest.selectedItem.emailaddress}"/> <mx:HTTPService id="userRequest" url="http://localhost/myproj/request_post2.php" useProxy="false" method="POST"> <mx:request xmlns=""> <username>{username.text}</username> <emailaddress>{emailaddress.text}</emailaddress> </mx:request> </mx:HTTPService> </mx:Application> Метод send() HTTPService’а звертається до сторінки PHP. Цей виклик реалізовано в методі send_data () в блоці Script файлу MXML. Властивість resultFormat компонента HTTPService встановлена як object, тому дані передаються назад на Flex-застосунок як граф об'єктів ActionScript. Для властивості resultFormat це встановлено за замовчуванням. Загалом, можна використовувати resultFormat з e4x, щоб повернути дані як об’єкт XMLList’а, на якому можна виконувати [реалізувати] ECMAScript для операцій XML (E4X). Зміна властивості resultFormat до e4x вимагає наступних незначних змін в коді MXML. Примітка: Якщо формат результату — e4x, не включайте кореневий вузол структури XML в точкове позначення (dot – “.”) при прив'язці до DataGrid. XML, що повертається в цьому прикладі, не містить інформації простору імен. Для отримання інформації про роботу з XML, що містить простір імен, див. Handling results as XML with the e4x result format. ... <mx:DataGrid id="dgUserRequest" x="22" y="128" dataProvider="{userRequest.lastResult.user}"> ... <mx:HTTPService id="userRequest" url="http://server/myproj/request_post2.php" useProxy="false" method="POST" resultFormat="e4x"> ... При використанні формату результату e4x можна додатково прив'язати властивість lastResult до об’єкту XMLListCollection, а потім прив'язати цей об'єкт до властивості DataGrid.dataProvider, як показано в наступному фрагменті коду: ... <mx:XMLListCollection id="xc" source="{userRequest.lastResult.user}"/> <mx:DataGrid id="dgUserRequest" x="22" y="128" dataProvider="{xc}"> ... Скрипт бази даних MySQLКод PHP для цього застосунку використовує таблицю users бази даних sample в MySQL. Наступний фрагмент коду MYSQL створює таблицю: CREATE TABLE `users` ( `userid` int(10) unsigned NOT NULL auto_increment, `username` varchar(255) collate latin1_general_ci NOT NULL, `emailaddress` varchar(255) collate latin1_general_ci NOT NULL, PRIMARY KEY (`userid`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=3 ; Код PHPЦей за стосунок звертається до наступної сторінки PHP. Цей код PHP виконує вставки в базу даних SQL і запити до неї, і повертає результати запитів Flex- застосунку в структурі XML. <?php define( "DATABASE_SERVER", "servername" ); define( "DATABASE_USERNAME", "username" ); define( "DATABASE_PASSWORD", "password" ); define( "DATABASE_NAME", "sample" ); //connect to the database $mysql = mysql_connect(DATABASE_SERVER, DATABASE_USERNAME, DATABASE_PASSWORD); mysql_select_db( DATABASE_NAME ); // Quote variable to make safe function quote_smart($value) { // Stripslashes if (get_magic_quotes_gpc()) { $value = stripslashes($value); } // Quote if not integer if (!is_numeric($value)) { $value = "'" . mysql_real_escape_string($value) . "'"; } return $value; } if( $_POST["emailaddress"] AND $_POST["username"]) { //add the user $Query = sprintf("INSERT INTO users VALUES ('', %s, %s)", quote_smart($_POST['username']), quote_smart($_POST['emailaddress'])); $Result = mysql_query( $Query ); } //return a list of all the users $Query = "SELECT * from users"; $Result = mysql_query( $Query ); $Return = "<users>"; while ( $User = mysql_fetch_object( $Result ) ) { $Return .= "<user><userid>".$User->userid."</userid><username>".$User->username."</username><emailaddress>".$User->emailaddress."</emailaddress></user>"; } $Return .= "</users>"; mysql_free_result( $Result ); print ($Return) ?> Виклик служб HTTP в ActionScriptНаступний приклад показує виклик служби HTTP в блок ActionScript’а. Виклик методу useHTTPService () об’являє сервіси, встановлює адресат, встановлює результат і прослуховувач помилок, і викликає метод сервісу send(). <?xml version="1.0"?> <!-- fds\rpc\HttpServiceInAS.mxml. Compiles --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" verticalGap="10"> <mx:Script> <![CDATA[ import mx.controls.Alert; import mx.rpc.http.HTTPService; import mx.rpc.events.ResultEvent; import mx.rpc.events.FaultEvent; private var service:HTTPService public function useHttpService(parameters:Object):void { service = new HTTPService(); service.destination = "sampleDestination"; service.method = "POST"; service.addEventListener("result", httpResult); service.addEventListener("fault", httpFault); service.send(parameters); } public function httpResult(event:ResultEvent):void { var result:Object = event.result; //Do something with the result. } public function httpFault(event:FaultEvent):void { var faultstring:String = event.fault.faultString; Alert.show(faultstring); } ]]> </mx:Script> </mx:Application> Зверніть увагу на додаткові посиланняЯкщо вас цікавить...Головний розділзагрузка...
|
Сторінки, близькі за змістом
|
Copyright © 2008—2023 Портал Знань.
При використанні матеріалів посилання, для інтернет-ресурсів — гіперпосилання, на Znannya.org обов'язкове.
Зв'язок
|
НТУУ "КПІ" Інженерія програмного забезпечення КПІ Лабораторія СЕТ |
|