Как подключить Flex к HTTP - PullRequest
0 голосов
/ 27 февраля 2009

Я создал проект в Flex Builder 3 и не думаю, что он подключается к назначенному мне HTTP. Это блог-приложение, которое подключено к базе данных с помощью страницы PHP. Когда я просматриваю приложение на странице HTML, текстовые поля недоступны для редактирования - вы не можете их ввести. Это заставляет меня поверить, что я неправильно назначил HTTP. Может ли это быть проблемой? Как это исправить?

Ответы [ 2 ]

0 голосов
/ 27 февраля 2009
  • Можете ли вы воспроизвести какие-либо данные в вашей DataGrid?

  • Если вы установите точку останова в вашем getData HTTPService, можете ли вы его поймать? Другими словами, это называется? Или есть ошибка? Добавьте обработчик ошибок, например:

    result = "getPHPData (event)" fault = "getFault (event)"

    и определить getFault().

0 голосов
/ 27 февраля 2009

Ниже приведен код mxml, который я использую. Я не получаю никаких сообщений о невозможности подключения к базе данных, поэтому я не думаю, что с PHP что-то не так.

<?xml version="1.0" encoding="utf-8"?>
 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"   width="535" height="345">
<mx:Script>
<![CDATA[
 import mx.events.DataGridEvent;
 import mx.controls.TextInput;
 import mx.rpc.events.ResultEvent;
 import mx.collections.ArrayCollection;
 import com.adobe.serialization.json.JSON;

 [Bindable]
 private var dataArray:ArrayCollection;

 private function initDataGrid():void
 {
   dataArray = new ArrayCollection();
   getData.send();
 }

 private function getPHPData(event:ResultEvent):void
 {
   var rawArray:Array;
   var rawData:String = String(event.result);
   rawArray = JSON.decode(rawData) as Array;
   dataArray = new ArrayCollection(rawArray);
 }

 private function sendPHPData():void
 {
   var objSend:Object = new Object();
   var dataString:String = JSON.encode(dataArray.toArray());
   dataString = escape(dataString);
   objSend.setTutorials = "true";
   objSend.jsonSendData = dataString;
   sendData.send(objSend);
 }

 private function updatedPHPDataResult(event:ResultEvent):void
 {
   lblStatus.text = String(event.result);
 }

 private function checkRating(event:DataGridEvent):void
 {
   var txtIn:TextInput = TextInput(event.currentTarget.itemEditorInstance);
   var curValue:Number = Number(txtIn.text);
   if(isNaN(curValue) || curValue < 0 || curValue > 10)
   {
     event.preventDefault();
     lblStatus.text = "Please enter a number rating between 0 and 10";
   }
  }
]]>
</mx:Script>
<mx:HTTPService id="getData" url="/keishalexie/imd465/forum.php"
 useProxy="false" method="GET" resultFormat="text"
 result="getPHPData(event)">
 <mx:request xmlns="">
  <getTutorials>"true"</getTutorials>
 </mx:request>
 </mx:HTTPService>
 <mx:HTTPService id="sendData" url="/keishalexie/imd465/forum.php"
 useProxy="false" method="GET" resultFormat="text"
 result="updatedPHPDataResult(event)">
</mx:HTTPService>
<mx:Binding source="dgData.dataProvider as ArrayCollection"
 destination="dataArray"/>
 <mx:Panel x="0" y="0" width="535" height="345" layout="absolute"
 title="Forum">
 <mx:DataGrid id="dgData" x="10" y="10" width="495" height="241"
   dataProvider="{dataArray}" creationComplete="{initDataGrid()}"
   editable="true" itemEditEnd="{checkRating(event)}">
  <mx:columns>
    <mx:DataGridColumn headerText="Name" dataField="name" editable="false"/>
    <mx:DataGridColumn headerText="Author" dataField="author" width="115"
       editable="false"/>
    <mx:DataGridColumn headerText="Rating" dataField="rating" width="50"
       editable="true" />
  </mx:columns>
 </mx:DataGrid>
 <mx:Button x="10" y="259" label="UpdateDatabase" id="butUpdate"
   click="{sendPHPData()}"/>
 <mx:Label x="140" y="261" id="lblStatus"/>
</mx:Panel>
</mx:Application>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...