gpt4 book ai didi

php - 如何在 ColumnCharts (xField ="date") 上按从 MySQL 获取的日期进行排序?

转载 作者:行者123 更新时间:2023-11-29 14:48:16 25 4
gpt4 key购买 nike

我对 Flex 还不太熟悉,我正在使用 Flash Builder 4.5。我很沮丧..从昨天早上开始就试图解决这个问题,但似乎没有足够的资源来了解有关 Flex 的更多信息!

所以问题是:我有一个带有“日期”数据类型的数据库字段,但我无法通过它来订购 xField!我尝试了很多东西,但没有任何效果......当我尝试通过 id 订购它时,它可以工作,但它不支持日期或其他东西。

这是日期的 php 格式:

      $row->date = new DateTime($row->date);
$row->date = $row->date->format( "d/m/Y" );

现在的问题是,当我尝试使 xField="date"不显示列时,xField 仍然是 [0 20 40 60 等..]。

我愿意接受新的建议,我不关心我只想在 xField 上显示日期的方式。

请像我说的那样,我对 Flex 还很陌生,所以请让您的答案易于理解。

希望有人能够帮助我,谢谢大家!

编辑:这是整个 FLEX 代码:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:fanpagesservice="services.fanpagesservice.*"
width="914" height="636" minWidth="955" minHeight="600" backgroundColor="#000000"
creationComplete="application1_creationCompleteHandler(event)">
<fx:Script>
<![CDATA[
import mx.charts.events.ChartItemEvent;
import mx.collections.ArrayCollection;
import mx.events.FlexEvent;
import mx.rpc.events.ResultEvent;
[Bindable]
private var Totals:ArrayCollection = new ArrayCollection;
[Bindable]
private var Likes:ArrayCollection = new ArrayCollection;
[Bindable]
public var minDate:Date = new Date(2011, 06, 1);
[Bindable]
public var maxDate:Date = new Date(2011, 06, 30);

protected function ResponcerTotals_resultHandler(event:ResultEvent):void
{
// TODO Auto-generated method stub
Totals = event.result as ArrayCollection;

}

protected function application1_creationCompleteHandler(event:FlexEvent):void
{
// TODO Auto-generated method stub
ResponderTotals.token = fanpageService.getAllFanpagesTotals();

}

protected function ResponderLikes_resultHandler(event:ResultEvent):void
{
// TODO Auto-generated method stub
Likes = event.result as ArrayCollection;
}

protected function totalsPie_itemClickHandler(event:ChartItemEvent):void
{
// TODO Auto-generated method stub
ResponderLikes.token = fanpageService.getAllFanpagesStats(event.hitData.item.page_name);
}

]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
<fanpagesservice:FanpagesService id="fanpageService" />
<s:CallResponder id="ResponderTotals" result="ResponcerTotals_resultHandler(event)" />

<s:CallResponder id="ResponderLikes" result="ResponderLikes_resultHandler(event)" />
<mx:SeriesInterpolate id="interpolate" duration="500"/>
</fx:Declarations>
<s:Panel x="18" y="9" width="878" height="613" backgroundColor="#262626" chromeColor="#000"
color="#FFFFFF" contentBackgroundColor="#262626" fontFamily="Arial" fontSize="14"
skinClass="spark.skins.spark.PanelSkin" textAlign="center">
<s:layout>
<s:BasicLayout/>
</s:layout>
<mx:PieChart id="totalsPie" x="10" y="10" itemClick="totalsPie_itemClickHandler(event)" dataProvider="{Totals}" showDataTips="true">
<mx:series>
<mx:PieSeries displayName="Series 1" field="likes" nameField="page_name" showDataEffect="{interpolate}"/>
</mx:series>
</mx:PieChart>
<mx:Legend x="11" y="414" width="400" dataProvider="{totalsPie}"/>

<mx:ColumnChart id="columnchart1" x="432" y="10" width="434" dataProvider="{Likes}"
showDataTips="true">
<mx:series>
<mx:ColumnSeries displayName="serie" yField="likes" xField="date" showDataEffect="{interpolate}"/>
</mx:series>
</mx:ColumnChart>
</s:Panel>
</s:Application>

基本上有一个饼图,当你点击它的一部分时,它需要按日期在柱形图中显示“喜欢”(每天有多少喜欢)。点击部分有效,只是 xField="date"不起作用。

最佳答案

你能做的最简单的事情是什么?在 php 端对其进行排序并将其发送到 Flex,因为考虑到您正在使用向导来创建所有 Flex 代码,您显然对 PHP 的了解比对 Flex 的了解更多。

如果您不想这样做,则需要解析结果,因为您的服务器只是发送字符串作为日期(而不是实际的 Date 对象):

protected function ResponderLikes_resultHandler(event:ResultEvent):void
{
var array:Array = ArrayCollection(event.result).source;
// Convert string to date object
for each(var item:Object in array)
{
item.timestamp = DateFormatter.parseDateString(item.date).getTime();
}
// Sort array
array.sortOn('timestamp', Array.NUMERIC);
// Insert into collection presorted
Likes = new ArrayCollection(array);
}

应该可以做到这一点,但是您需要对总计进行相同的操作,或者只是创建一个对数据进行解析和排序的函数。

关于php - 如何在 ColumnCharts (xField ="date") 上按从 MySQL 获取的日期进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6389709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com