Coldfusion 在字段中使用带逗号的自动完成
我正在尝试使用带有逗号的字段的autocomplete。当我键入逗号时,它将忽略它,并且不会返回任何内容。到目前为止,我有: index.cfmColdfusion 在字段中使用带逗号的自动完成,coldfusion,autocomplete,Coldfusion,Autocomplete,我正在尝试使用带有逗号的字段的autocomplete。当我键入逗号时,它将忽略它,并且不会返回任何内容。到目前为止,我有: index.cfm <!--- A simple form for auto suggest ---> <cfform action="autosuggest.cfm" method="post"> Artist: <cfinput type="text" name="artist" size="50" autosuggest="c
<!--- A simple form for auto suggest --->
<cfform action="autosuggest.cfm" method="post">
Artist:
<cfinput type="text" name="artist" size="50" autosuggest="cfc:autosuggest.findartist({cfautosuggestvalue})" autosuggestminlength="4" maxresultsdisplayed="5" /><br /><br />
</cfform>
艺术家:
autosuggest.cfc
<cfcomponent output="false">
<!--- Lookup used for auto suggest --->
<cffunction name="findartist" access="remote" returntype="string">
<cfargument name="search" type="any" required="false" default="">
<!--- Define variables --->
<cfset var local = {} />
<!--- Query Location Table --->
<cfquery name="local.query" datasource="#application.datasource#" >
select DISTINCT artist
from items
where artist like <cfqueryparam cfsqltype="cf_sql_varchar" value="#ucase(arguments.search)#%" />
order by artist
</cfquery>
<!--- And return it as a List --->
<cfreturn valueList(local.query.artist)>
</cffunction>
</cfcomponent>
选择独特的艺术家
从项目
艺术家喜欢哪里
艺术家订购
当我尝试搜索例如Brown、James时,它不会返回任何内容。我需要在其中输入什么才能返回带逗号的结果
谢谢一个选项是让函数返回数组,而不是字符串。那么分隔符就不是问题了
<cffunction name="findartist" access="remote" returntype="array">
...
<cfreturn listToArray(valueList(local.query.artist, chr(30)), chr(30))>
</cffunction>
...
更新:
正如Raymond指出的,在CF端避免分隔符问题的唯一可靠方法是不使用它们。而是通过循环查询来构建数组,即:
<cffunction name="findartist" access="remote" returntype="array">
...
<cfset local.arr = []>
<cfloop query="local.query">
<cfset arrayAppend(local.arr, local.query.artist)>
</cfloop>
<cfreturn local.arr>
</cffunction>
...
好的,你可能想用相关的编程语言和工具来标记你的问题。@Kay并且也请发布你的呈现HTML。如果你用逗号将你的术语直接放入查询中,它会返回结果吗?如果OP正在读这篇文章,请注意使用chr(30)作为分隔符。这就解决了数据中的逗号问题。为什么还要用分隔符呢?只需循环查询并创建一个数组。这样你就不必担心数据中的chr(30)(尽管这可能永远不会发生)。@RaymondCamden-没有特别的原因。我只是处于一种反循环的情绪;-)。但约定的循环更为防弹。