автозаполнение в Coldfusion 8 - PullRequest
       15

автозаполнение в Coldfusion 8

0 голосов
/ 19 февраля 2012

Мне нужно добавить виджет автозаполнения для поиска слова из базы данных, даже если символы находятся в середине слова Это моя страница CFM:

      <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, но я не могу заставить ее работать вообще. Когда я пишу в текстовом поле, ничего не происходит, есть ли что-то не так в моем коде?

Ответы [ 2 ]

0 голосов
/ 12 декабря 2012

Попробуйте это:

<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 голосов
/ 19 февраля 2012

Ваш поисковый запрос:

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

Если я правильно понимаю ваш вопрос для целых слов, он будет

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

Обратите внимание, что%% *

*Вы также можете задать вопрос «мое автозаполнение вообще не работает». В этом случае я бы скачал и установил fiddler , поскольку это отличный инструмент для отладки, который отлично работает для отладки с помощью вызовов AJAX.

...