文本字段中的ColdFusion autosuggest没有响应

时间:2012-11-01 18:03:21

标签: coldfusion

我有一个文本字段,我想基于查询自动提取值。我有一个主文件以及一个保存我的查询的单独文件(getdata.cfc)。

这是我的主文件的文本字段部分:

<cfinput name="search_query" autosuggest="url:getdata.cfc?suggestvalue={cfautosuggestvalue}" maxResultsDisplay="10" showAutoSuggestLoadingIcon="true" size="10" /> 

以下是getdata.cfc中的代码:

   <cfcomponent>
    <cffunction name="get_data" access="remote"  output="false">
        <cfargument name="suggestvalue" required="true">

        <cfquery name="get_data" datasource="#application.DSN#">
                SELECT DISTINCT myItem 
                FROM myTable
                WHERE myItem LIKE <cfqueryparam value="#suggestvalue#%"
                cfsqltype="cf_sql_varchar">
                ORDER BY myItem 
        </cfquery>

        <cfif get_data.recordCount eq 1>
            <cfreturn ",#get_data.myItem#">
       <cfelse>
            <cfreturn ValueList(get_data.myItem)>
       </cfif>
    </cffunction>
</cfcomponent>

文本字段显示正常,但是当我输入单词时,不显示自动提示值。什么都没发生。当我输入文本时,文本就会显示出来。

有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:2)

我转而使用来自很多CF内容的jquery插件,但这里有一个我可以在一些旧的生产代码中使用的例子

<cfinput type="text" name="email" id="email" autosuggest="cfc:cfc.users.lookupEmail({cfautosuggestvalue})" maxresultsdisplayed = "25">

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

    <!--- Define variables --->
    <cfset var data="">
    <cfset var result=ArrayNew(1)>

    <!--- Do search --->
    <cfquery name="data"  datasource="datasource" maxrows="25" cachedwithin="#CreateTimeSpan(0,0,30,0)#">
    SELECT distinct email
    FROM users
    WHERE email LIKE  <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.search#%">
    ORDER BY email
    </cfquery>

    <!--- Build result array --->
    <cfloop query="data">
    <cfset ArrayAppend(result, email)>
    </cfloop>

    <!--- And return it --->
    <cfreturn result>
</cffunction>

也许这有帮助

还要确保您的表单周围有cfform标记,并确保您的/ cfide文件夹已映射到您的网站。

查看您的代码并进行比较......这可能是您调用cfc(文件名)

的方式

尝试:autosuggest =“cfc:getdata.get_data。({cfautosuggestvalue})”