1

クエリに基づいて値を自動提案するテキスト フィールドがあります。クエリを保持する別のファイル (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>

テキスト フィールドは正常に表示されますが、単語を入力しても自動提案値が表示されません。何も起こりません。入力したとおりにテキストが表示されます。

助言がありますか?ありがとうございました!

4

1 に答える 1

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 フォルダーが Web サイトにマップされていることを確認してください。

コードを見て比較する... cfc(ファイル名)を呼び出す方法かもしれません

試してください: autosuggest="cfc:getdata.get_data.({cfautosuggestvalue})"

于 2012-11-01T18:31:27.873 に答える