Skip to main content
Participant
July 28, 2014
Answered

How do you pass "struct" in an AJAX call URL? (CF11)

  • July 28, 2014
  • 1 reply
  • 529 views

Quote from CF11 documentation: "Note that "struct" is also available to be accessible through an AJAX argument. Now you can pass struct  in an AJAX URL to serialize a query object as struct."

How? An example URL would be handy.

This topic has been closed for replies.
Correct answer BKBK

"To serialize a query object as struct" overstates the case. You can serialize a struct, as well as a query, for sending by means of URL.

For example, create the following 2 CFM pages in the same directory.

testpage1.cfm

<cfdump var="#url#">

testpage2.cfm

<cfset myStruct = structnew()>

<cfset myStruct.myFirstKey = "uno">

<cfset myStruct.mySecondKey = 2>

<cfset myStructSerialized = serializeJSON(myStruct)>

<!--- Uses built-in cfdocexamples datasource --->

<cfquery name = "getBiololgyCourses" dataSource = "cfdocexamples">

    SELECT Course_ID, Dept_ID, CorNumber,

    CorName, CorLevel

    FROM CourseList

    WHERE Dept_ID = 'BIOL'

    ORDER by CorNumber asc

</cfquery>

<cfset biologyCoursesSerialized = serializeJSON(getBiololgyCourses)>

<cflocation url="testpage1.cfm?myVar=#myStructSerialized#&biologyCourses=#biologyCoursesSerialized#">

1 reply

BKBK
Community Expert
BKBKCommunity ExpertCorrect answer
Community Expert
July 29, 2014

"To serialize a query object as struct" overstates the case. You can serialize a struct, as well as a query, for sending by means of URL.

For example, create the following 2 CFM pages in the same directory.

testpage1.cfm

<cfdump var="#url#">

testpage2.cfm

<cfset myStruct = structnew()>

<cfset myStruct.myFirstKey = "uno">

<cfset myStruct.mySecondKey = 2>

<cfset myStructSerialized = serializeJSON(myStruct)>

<!--- Uses built-in cfdocexamples datasource --->

<cfquery name = "getBiololgyCourses" dataSource = "cfdocexamples">

    SELECT Course_ID, Dept_ID, CorNumber,

    CorName, CorLevel

    FROM CourseList

    WHERE Dept_ID = 'BIOL'

    ORDER by CorNumber asc

</cfquery>

<cfset biologyCoursesSerialized = serializeJSON(getBiololgyCourses)>

<cflocation url="testpage1.cfm?myVar=#myStructSerialized#&biologyCourses=#biologyCoursesSerialized#">