簡體   English   中英

將xml(來自php腳本的響應)加載到datagrid中時出現問題-Flex

[英]Problem in loading xml (response from php script) into the datagrid - flex

我正在嘗試學習Flex。 我在從XML響應(從PHP腳本)加載DataGrid時遇到問題。

mxml代碼:

<mx:DataGrid id="dataGrid" x="69" y="250"> 
 <mx:columns>
     <mx:DataGridColumn headerText="Name" dataField="name"/> 
     <mx:DataGridColumn headerText="Age" dataField="age"/> 
     <mx:DataGridColumn headerText="Location" dataField="location"/>
 </mx:columns>
</mx:DataGrid>

<mx:HTTPService resultFormat="e4x" result="getDataCallback(event)" id="getDataHttp" url="http://localhost/test/getData.php" method="POST"/>
<mx:Button click="getDataHttp.send();" label="Load Data" x="379" y="268"/>

<mx:Script>
<![CDATA[ 

    import mx.collections.ArrayCollection;
    import mx.rpc.events.ResultEvent;
    import mx.controls.Alert;

    [Bindable]
    public var mydata:XMLList = new XMLList();
    function getDataCallback(event:ResultEvent):void
    {
        mydata = event.result.data.info;
        dataGrid.dataProvider = mydata;
    }
]]>
</mx:Script>

PHP腳本:

<?php
$xml = "<?xml version=\"1.0\" ?><data>";
$xml .= "<info><name>name1</name><age>26</age><location>location1</location></info>";
$xml .= "<info><name>name2</name><age>27</age><location>location2</location></info>";
$xml .= "</data>";
header("content-type:text/xml");
echo $xml;

但是數據沒有被加載到數據網格中。 誰能幫我嗎?

我認為您的問題是您正在調用“數據”節點。 在e4x中,根節點的名稱不是這樣。

嘗試以下方法:

mydata = event.result.info;

除此之外,您有正確的想法。 我在沒有服務器組件ant的情況下在這里這樣做:

<s:applicationComplete>
    <![CDATA[
        var result:XML = <data>
                        <info><name>name1</name><age>26</age><location>location1</location></info>
                        <info><name>name2</name><age>27</age><location>location2</location></info>
                      </data>;

        dataGrid.dataProvider = result.info;
    ]]>
</s:applicationComplete>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM