Carl, thanks for the help, sorry that did not work though. I've created a test that you can copy and paste into a file to save. You can run it on Coldfusion 11 and Coldfusion 2016 and get 2 different results. I'm honestly not sure what is happening, I'd love to hear that it is a simple setting in the admin! Code to Paste into new file:
<cfscript>
db = QueryNew("ID,parentID,title,priority", "Integer,Integer,VarChar,Integer");
queryAddRow(db, [
{ID=1, parentID=0, title="Main 1", priority=1},
{ID=2, parentID=1, title="Main 2 - Sub 1", priority=1},
{ID=3, parentID=1, title="Main 2 - Sub 2", priority=2},
{ID=4, parentID=3, title="Main 2 - Sub 2 - Deep 1", priority=1},
{ID=5, parentID=3, title="Main 2 - Sub 2 - Deep 2", priority=2},
{ID=6, parentID=1, title="Main 2 - Sub 3", priority=3},
{ID=7, parentID=0, title="Main 2", priority=2},
{ID=8, parentID=0, title="Main 3", priority=3},
{ID=9, parentID=0, title="Main 4", priority=4},
{ID=10, parentID=0, title="Main 5", priority=5}
]);
</cfscript>
<cffunction name="doThis" access="public" returntype="string">
<cfargument name="parent" type="numeric" default="0">
<cfscript>
var LOCAL = {};
</cfscript>
<cfquery name="LOCAL.q" dbtype="query">
SELECT ID, parentID, title
FROM db
WHERE parentID = <cfqueryparam cfsqltype="cf_sql_integer" value="#arguments.parent#">
ORDER BY priority;
</cfquery>
<cfsavecontent variable="LOCAL.html">
<cfif LOCAL.q.RecordCount>
<ul>
<cfoutput query="LOCAL.q">
<li>
<span>#LOCAL.q.title#</span>
#doThis(parent=LOCAL.q.ID)#
</li>
</cfoutput>
</ul>
</cfif>
</cfsavecontent>
<cfreturn LOCAL.html>
</cffunction>
<cfoutput>#doThis()#</cfoutput>
In Coldfusion 2016:
<ul>
<li>
<span>Main 1</span>
<ul>
<li><span>Main 2 - Sub 1</span></li>
<li>
<span>Main 2 - Sub 2</span>
<ul>
<li><span>Main 2 - Sub 2 - Deep 1</span></li>
<li><span>Main 2 - Sub 2 - Deep 2</span></li>
</ul>
</li>
</ul>
</li>
</ul>
In Coldfusion 11:
<ul>
<li>
<span>Main 1</span>
<ul>
<li><span>Main 2 - Sub 1</span></li>
<li>
<span>Main 2 - Sub 2</span>
<ul>
<li><span>Main 2 - Sub 2 - Deep 1</span></li>
<li><span>Main 2 - Sub 2 - Deep 2</span></li>
</ul>
</li>
<li><span>Main 2 - Sub 3</span></li>
</ul>
</li>
<li><span>Main 2</span></li>
<li><span>Main 3</span></li>
<li><span>Main 4</span></li>
<li><span>Main 5</span></li>
</ul>
It appears to me that the LOCAL.q is actually getting overwritten each time, it isn't actually being stored LOCALLY. I've tried your suggestion with var q as well and it was the same. Thanks!!
... View more