안녕하세요. 최근 Flash Builder 4.5로 작업하기 시작 했으므로 모바일 응용 프로그램을 빌드하는 동안 특히 내 응용 프로그램을 백 엔드 서버에 연결할 때 많은 어리석은 문제가 있습니다.PHP 및 MySQL을 사용하여 flex 4.5 DataGrid 채우기
현재 작업중인 것은 DataGrid를 업데이트해야하며이 데이터는 MySQL 데이터베이스에서 검색됩니다.
이 코드는 브라우저에 데이터를 명확하게 표시하지만 데이터 그리드는 업데이트되지 않습니다. 대신 다음과 같은 오류가 발생합니다.
TypeError: Error #1034: Type Coercion failed: cannot convert mx.utils::[email protected] to mx.collections.IList.
at views::connectPHPHomeView/userRequest_resultHandler()[C:\Documents and Settings\s4710935\Adobe Flash Builder 4.5\connectPHP\src\views\connectPHPHomeView.mxml:17]
at views::connectPHPHomeView/__userRequest_result()[C:\Documents and Settings\s4710935\Adobe Flash Builder 4.5\connectPHP\src\views\connectPHPHomeView.mxml:29]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at HTTPOperation/http://www.adobe.com/2006/flex/mx/internal::dispatchRpcEvent()[E:\dev\4.5.1\frameworks\projects\rpc\src\mx\rpc\http\HTTPService.as:993]
at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::resultHandler()[E:\dev\4.5.1\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:318]
at mx.rpc::Responder/result()[E:\dev\4.5.1\frameworks\projects\rpc\src\mx\rpc\Responder.as:56]
at mx.rpc::AsyncRequest/acknowledge()[E:\dev\4.5.1\frameworks\projects\rpc\src\mx\rpc\AsyncRequest.as:84]
at DirectHTTPMessageResponder/completeHandler()[E:\dev\4.5.1\frameworks\projects\rpc\src\mx\messaging\channels\DirectHTTPChannel.as:451]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
누군가 나를 통해 이것을 안내 할 수 있습니까? 여기에 편집
는 PHP 코드 :
<?php
// -----------------------------------------------------------------------------
// Initialization of the sql server
// -----------------------------------------------------------------------------
// hostname or ip of server (for local testing, localhost should work)
$dbServer='localhost';
// username and password to log onto db server
$dbUser='root';
$dbPass='password';
// name of database
$dbName='test';
mysql_connect("$dbServer", "$dbUser", "$dbPass") or die(mysql_error());
mysql_select_db("$dbName") or die(mysql_error());
//Creating the table and inserting the values in it...
mysql_query("CREATE TABLE IF NOT EXISTS mariah_transaction_log(
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
date DATE,
details VARCHAR(150),
debit DOUBLE,
credit DOUBLE,
balance DOUBLE)")
or die(mysql_error());
mysql_query("INSERT INTO mariah_transaction_log
(date, details, debit, credit, balance) VALUES('2011-08-08','Zellers','12.56','0.00','12343.54') ")
or die(mysql_error());
$username = $_GET["username"];
// $namedGreeting = mysql_query("SELECT * FROM customer_list WHERE username='$username'") or die(mysql_error());
// $row = mysql_fetch_array($namedGreeting);
// echo "Hello ".$row['name']."!";
$Query = "SELECT * from mariah_transaction_log";
$Result = mysql_query($Query);
$Return = "<users>";
while ($User = mysql_fetch_object($Result))
{
$Return .= "<user><date>".$User->date."</date><details>".
$User->details."</details><debit>".
$User->debit."</debit><credit>".
$User->credit."</credit><balance>".
$User->balance."</balance></user>";
}
$Return .= "</users>";
mysql_free_result($Result);
print ($Return)
?>
그리고 여기 내 코드에 MXML 및 AS3 일부입니다 샘플 XML 결과가 방금 추가 된 참고 단순화를 위해
<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" title="HomeView">
<fx:Script>
<![CDATA[
import mx.collections.IList;
import mx.collections.XMLListCollection;
import mx.rpc.events.ResultEvent;
protected function callService(event:ResultEvent):void
{
var results:XML = sampleResult;
var resultsList:XMLListCollection = results.users as XMLListCollection;
showTransactions_dg.dataProvider = resultsList;
}
]]>
</fx:Script>
<fx:Declarations>
<fx:XML id="sampleResult" xmlns="">
<users>
<user>
<date>2011-08-07</date>
<details>Camello Shop</details>
<debit>67.32</debit>
<credit>0.00</credit>
<balance>1233.42</balance>
</user>
<user>
<date>2011-08-07</date>
<details>Deposit</details>
<debit>0.00</debit>
<credit>600.00</credit>
<balance>1833.42</balance>
</user>
</users>
</fx:XML>
<s:HTTPService id="userRequest" url="{phpFile}"
method="GET" resultFormat="e4x"
result="callService(event)" useProxy="false">
<s:request xmlns="">
<username>{username_txt.text}</username>
</s:request>
</s:HTTPService>
<!-- The link to the php file -->
<fx:String id="phpFile">http://localhost:8080/connectPHP/phpFile.php </fx:String>
</fx:Declarations>
<s:TextInput id="username_txt" x="11" y="78"/>
<s:Label x="11" y="55" text="Username"/>
<s:Button id="getData_button" x="10" y="122" label="Done?"
click="userRequest.send()"/>
<s:Label id="showName_lbl" x="13" y="173" text="show name here"/>
<s:DataGrid id="showTransactions_dg" x="10" y="218" width="300" height="86">
<s:columns>
<s:ArrayCollection>
<s:GridColumn dataField="date" headerText="Date" />
<s:GridColumn dataField="details" headerText="Details"/>
<s:GridColumn dataField="debit" headerText="Debit"/>
<s:GridColumn dataField="credit" headerText="Credit"/>
<s:GridColumn dataField="balance" headerText="Balance"/>
</s:ArrayCollection>
</s:columns>
</s:DataGrid>
<s:Label id="testLbl" x="13" y="334" width="266" height="90" text="Label"/>
</s:View>
오류가 Flex에서 발생하므로 MXML/ActionScript 코드를 질문에 포함해야합니다. –
@ LarsBlåsjö 미안하지만 완전히 내 마음을 스킵! 이제 MXML 구성 요소를 추가했습니다 ... – BurninatorDor