Coldfusion CaldFuxAutoSpCufft不适用于字符串中间的建议

Coldfusion CaldFuxAutoSpCufft不适用于字符串中间的建议,coldfusion,Coldfusion,对于我的自动建议,我使用下面的代码 键入时,它只查看字符串的开头。 例如,如果我键入'abcd',它将附带建议'abcde…',这很好 但它不起作用的是,如果我键入'def'并且在数据库中有一个字符串'abcdefg',那么这不会出现在自动建议中 在我的查询中,搜索字符串前后都有百分比字符 对我来说,它看起来像自动标识符,只看在开始时键入的字符,而不是在中间。 还是我做错了什么 <cfcomponent output="false"> <cffunction name

对于我的自动建议,我使用下面的代码

键入时,它只查看字符串的开头。 例如,如果我键入'abcd',它将附带建议'abcde…',这很好

但它不起作用的是,如果我键入'def'并且在数据库中有一个字符串'abcdefg',那么这不会出现在自动建议中

在我的查询中,搜索字符串前后都有百分比字符

对我来说,它看起来像自动标识符,只看在开始时键入的字符,而不是在中间。

还是我做错了什么

<cfcomponent output="false">

    <cffunction name="lookupJobs" access="remote" returntype="array">
       <cfargument name="search" type="any" required="false" default="">

       <cfset var qGetJobs="">
       <cfset var result=ArrayNew(1)>
       <cfquery name="qGetJobs" datasource="#application.dsn#"> 
          SELECT DISTINCT title
          FROM tbl_jobs  
          WHERE  title LIKE '%#arguments.search#%' 
          ORDER BY title
       </cfquery> 
       <cfloop query="qGetJobs">
           <cfset ArrayAppend(result, title)>
       </cfloop>
       <cfreturn result>
    </cffunction>

</cfcomponent>

多亏了Leigh,解决方案是使用cfinput

<cfinput type="text" name="title" 
      showautosuggestloadingicon="false"
      autosuggest="cfc:autosuggest.lookupJobs({cfautosuggestvalue})"   
      matchContains="true">

我需要添加属性:

当您遇到意外行为时,总是可以重新检查文档。这是根据的默认行为。可以将matchContains属性设置为true进行更改。谢谢你,Leigh,你说得对!我认为问题不在于cfinput,而在于完全不同的领域。很好,欢迎。顺便说一句,不要忘记在所有变量查询参数上使用cfqueryparam: