Answered
need help on CFcomponent
I have a CFC that use cfautosuggestvalue. here is the code
<cfcomponent output="false">
<cfset THIS.dsn="test">
<!--- Lookup used for auto suggest --->
<cffunction name="lookupArt" access="remote" returntype="array">
<cfargument name="search" type="any" required="false" default="">
<cfargument name="filters" type="any" required="false" default="">
<!--- Define variables --->
<cfset var data="">
<cfset var result=ArrayNew(1)>
<!--- Do search --->
<cfquery datasource="#THIS.dsn#" name="data">
SELECT DISTINCT(term)
FROM term_table
WHERE term LIKE '#ARGUMENTS.search#%'
AND distribution IN (#ARGUMENTS.filters#)
ORDER BY term
</cfquery>
<!--- Build result array --->
<cfloop query="data">
<cfset ArrayAppend(result, term)>
</cfloop>
<!--- And return it --->
<cfreturn result>
</cffunction>
</cfcomponent>
My cfm page:
<cfform action="index.cfm" method="post">
<cfinvoke component="term" method="lookupArt" filters="#filters#" returnvariable="return_filters">
</cfinvoke>
<cfinput type="text"
name="term_name"
autosuggest="cfc:term.lookupArt({cfautosuggestvalue})" size="40" autosuggestminlength="2" />
<cfinput type="submit" name="submit_search" value="Search" />
</cfform>
the problem is that the filters variable passed over to the cfc but would not narrow the search term. I dont know how to get this to work?
Thanks.
<cfcomponent output="false">
<cfset THIS.dsn="test">
<!--- Lookup used for auto suggest --->
<cffunction name="lookupArt" access="remote" returntype="array">
<cfargument name="search" type="any" required="false" default="">
<cfargument name="filters" type="any" required="false" default="">
<!--- Define variables --->
<cfset var data="">
<cfset var result=ArrayNew(1)>
<!--- Do search --->
<cfquery datasource="#THIS.dsn#" name="data">
SELECT DISTINCT(term)
FROM term_table
WHERE term LIKE '#ARGUMENTS.search#%'
AND distribution IN (#ARGUMENTS.filters#)
ORDER BY term
</cfquery>
<!--- Build result array --->
<cfloop query="data">
<cfset ArrayAppend(result, term)>
</cfloop>
<!--- And return it --->
<cfreturn result>
</cffunction>
</cfcomponent>
My cfm page:
<cfform action="index.cfm" method="post">
<cfinvoke component="term" method="lookupArt" filters="#filters#" returnvariable="return_filters">
</cfinvoke>
<cfinput type="text"
name="term_name"
autosuggest="cfc:term.lookupArt({cfautosuggestvalue})" size="40" autosuggestminlength="2" />
<cfinput type="submit" name="submit_search" value="Search" />
</cfform>
the problem is that the filters variable passed over to the cfc but would not narrow the search term. I dont know how to get this to work?
Thanks.
