2012-11-01 59 views
1

我有一個文本字段,我想根據查詢自動提取值。我有一個主文件以及一個單獨的文件(getdata.cfc)來保存我的查詢。文本字段中的ColdFusion自動提示沒有響應

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

<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

當你點擊cfc時,Firebug顯示器的輸出是什麼? – Busches

+0

我有Fiddler,它沒有拿起cfc文件正在被擊中。 – Lou

+0

所有文檔都顯示自動提示的cfc,而不是url :.所以它會是:autosuggest =「cfc:getdata.get_data({cfautosuggestvalue})」>它們也返回一個數組而不是一個列表。 – Busches

回答

2

我切離,使用jQuery插件從大量的CF東西,但這裏是一個例子,我有一些舊的生產代碼的工作

<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的方式(文件名)

嘗試:自動提示= 「CFC:getdata.get_data({} cfautosuggestvalue)」

+0

我不確定這會有所幫助,因爲我不認爲我的cfc文件正在被訪問。不過謝謝。讓我知道你是否有其他想法。 – Lou

+0

我剛剛更新了代碼.... autosuggest =「cfc:getdata.get_data。({cfautosuggestvalue})」您正在使用URL:文件名....但沒有調用函數...所以你werent得到函數觸發返回你的信息... – steve

+1

如果你想,只需添加method = get_data字符串,就像下面,它也應該工作...我更喜歡cfc方法。 URL:getdata.cfc?method = get_data&suggestvalue = {cfautosuggestvalue} – steve