2011-05-30 34 views
0

我想用一个来自cfc的JSON字符串来提供FullCalendar的事件部分。 cfc正在返回数据,但我无法以这个插件所需的格式返回数据。日历不响应事件。 我需要做什么来设置我的cfc以返回正确的格式。 我得到的JSON看起来像这样。将事件提供给jQuery的CFC FullCalendar

[["id: 237","title: Robert Byrd - First Appt.","start: 2011-05-24 11:00:00.0","allDay: false"],["id: 238","title: Margie Hambro - First Appt.","start: 2011-05-14 08:00:00.0","allDay: false"],["id: 302","title: Judy Nichols - First Appt.","start: 2011-05-17 15:50:00.0","allDay: false"],["id: 303","title: Ben Parker - First Appt.","start: 2011-05-23 10:15:00.0","allDay: false"],["id: 304","title: Robert Lentz - First Appt.","start: 2011-05-24 11:25:00.0","allDay: false"]]

<cffunction name="getLeadAppointments" access="remote" returnformat="json" returntype="any"> 
<cfargument name="start" type="any" required="true" default=""> 
<cfargument name="end" type="any" required="true" default=""> 
<!--- Get data ---> 
<cfquery name="data" datasource="#VARIABLES.dsn#"> 
SELECT LS.LeadSched_ID AS id, 
LTRIM(COALESCE (CM.Contact_FName, '') + ' ' + COALESCE (CM.Contact_LName, '') + ' - ' + LD.DevType_Desc) AS event, 
LS.LeadSched_TargetDate AS Start, 
LS.LeadSched_ActualDate 
FROM ... 
Where convert(varchar(25), LS.LeadSched_TargetDate) BETWEEN #dateAdd("s", ARGUMENTS.start, "01/01/1970")# AND #dateAdd("s", ARGUMENTS.end, "01/01/1970")# 
</cfquery> 

<cfsilent> 
<cfset calEvents = ArrayNew(2)> 
<cfoutput query="data"> 
<cfset calEvents[#currentRow#][1] = 'id: #data.id#'> 
<cfset calEvents[#currentRow#][2] = 'title: #data.event#'> 
<cfset calEvents[#currentRow#][3] = 'start: #data.start#'> 
<cfset calEvents[#currentRow#][4] = 'allDay: false'> 
</cfoutput> 
<cfset calData = SerializeJSON(data)> 
</cfsilent> 

<cfreturn calEvents> 
</cffunction> 
+0

请格式化您的文章。 – 2011-05-30 18:47:18

回答

1

这是一个猜测,但我强烈怀疑你的客户端代码想要的东西,看起来更像是这样的:

[{"id": "237","title": "Robert Byrd - First Appt.","start": "2011-05-24 11:00:00.0","allDay": false}, ...] 

注意外阵列中的条目被改变在这里从字符串数组(如你所见)转换成对象,并且你的原始字符串被分成两部分(除了最后的布尔属性,“allDay”,它给出了JSON本地布尔值false)。

+0

是的,这是客户端正在寻找。我无法弄清楚如何从cfc中获取它。 – draftingDan 2011-05-30 20:21:20

+0

好吧,我恐怕不能帮你做那件事。我甚至不知道“cfc”是什么:-(这是你写的一个组件,还是你只是想使用一些现成的代码? – Pointy 2011-05-30 20:21:51

+0

cfc是一个ColdFusion组件,返回数据通过查询组件中的命名函数我已经使用了很多cfc,但是这是我第一次编写一个喂这样一个jquery插件 – draftingDan 2011-05-30 20:28:06

0

你指定了JSON作为你的cffunction的returnformat吗?

<cffunction name="myCoolFunction" returnformat="JSON" ... >

这将有助于进一步调试,如果你能发布cffunction本身,而不是仅仅从它的结果。

+0

\t \t <!---获取数据---> SELECT \t LS.LeadSched_ID AS id, LTRIM(COALESCE(CM.Contact_FName,'')+''+ COALESCE(CM.Contact_LName,''+' - '+ LD.DevType_Desc)AS事件, LS .LeadSched_TargetDate AS Start, LS.LeadSched_ActualDate – draftingDan 2011-05-30 20:23:30

+0

draftingDan 2011-05-30 20:23:37

+0

你有可能修改原始帖子,插入上面的代码...并正确格式化(要么缩进4个空格,要么用'字符(键盘左上角)包围)。会让它更容易遵循。 – charliegriefer 2011-05-30 20:38:22