2012-02-19 11 views
0
私は文字が単語 この私のCFMページの中央にある場合でも、データベースから単語を検索するためのオートコンプリートウィジェットを追加する必要があり

オートコンプリート8

 <script src="jquery-1.4.2.min.js"></script> 
     <script src="jquery-ui-1.8.custom.min.js"></script> 
     <link rel="stylesheet" href="jquery-ui-1.8.custom.css" type="text/css" /> 

     <script type="text/javascript"> 
     $(document).ready(function(){ 
     $('#Names').autocomplete( 
        {source: function(request, response) { 
        $.ajax({ 
        url: "cfc/getValues.cfc?method=getNames>&returnformat=json", 
        dataType: "json", 
        data: { 
        search: request.term, 
        maxRows: 10 
        }, 
        success: function(data) { 
        response(data); 
        }      
        }) 
       }, 
      parse: function(data){ 
        return $.map(data, function(item) { 
        return { data: item, value: item, result: item }; 
       }); 
       } 
      }); 
      }); 
     </script> 

    category: <input id="Names" /> 

と、このCFCページ:

//cfc file getValues.cfc 

    <cffunction name="getNames" access="remote" returntype="String" > 
    <cfargument name="search" type="any" required="false" default=""> 
     <cfset var data=""> 
     <cfset var result=ArrayNew(1)> 
      <cfquery name="data" datasource="dbNAme"> 
      SELECT NAME 
      FROM myTable 
      WHERE NAME LIKE '%#trim(ARGUMENTS.search)#%' 
      ORDER BY NAME 
      </cfquery> 
     <cfloop query="data"> 
     <cfset returnStruct = StructNew() /> 
     <cfset returnStruct["label"] = NAME /> 
     <cfset ArrayAppend(result,returnStruct) /> 
     </cfloop> 
     <cfreturn serializeJSON(result) /> 
     </cffunction> 

ませんjavascriptのエラーが、私はそれがでall.when私は何も起こらないテキストボックスに書き込み動作させることはできませんが、私のコードで間違った何かがありますか?

答えて

0

これを試してみてください:

<cfloop query="data"> 
    <cfset statesStruct = StructNew() /> 
    <cfset statesStruct["id"] = id /> 
    <cfset statesStruct["label"] = name /> 
    <cfset statesStruct["value"] = name /> 

    <cfset ArrayAppend(returnArray,statesStruct) /> 
</cfloop> 

<cfoutput> 
    #serializeJSON(returnArray)# 
</cfoutput> 
0

あなたの検索用語を使用すると、また尋ねるかもしれないしかし

WHERE NAME LIKE '%#trim(ARGUMENTS.search)#%' 

私は全体の言葉を正しくあなたの質問を理解していれば、それは

WHERE NAME LIKE '#trim(ARGUMENTS.search)#' 

お知らせすることshoudは%ワイルドカード

を削除しましたさ質問 "私のオートコンプリートはまったく動作しません"この場合、私はfiddlerをダウンロードしてインストールします。これは素晴らしいデバッグツールであり、 AJAX呼び出しによるデバッグ

+0

私も、私は存在しないとエラーが発生していないファイルへのCFCを変更しようとしたCFCへのアクセスを得ることができ、私の問題は、私はトンを得ることができるということですそれはすべてで動作する – sally

+0

@sallyフィドラーについての私の余分なコメントを参照してください。 – Rippo

+0

@をCFCで使用するには、を使用してください。 jceryでcfcを呼び出す代わりに、まずサンプルcfmファイルを作成し、cfcを呼び出して正しい結果が返ってくるかどうか確認してください。次に、問題の原因を確認できます – DG3