2016-05-26 13 views
1

Ich habe eine CF10-Funktion, die ich herausfinden möchte, wie assoc_last, assoc_first (Nachname, Vorname) für eine automatische Vervollständigung anzuzeigen. Ich konnte entweder den Vornamen oder den Nachnamen anzeigen, kann aber aus irgendeinem Grund nicht herausfinden, wie das Array eingerichtet wird, um beides zu akzeptieren. Könnte mir jemand helfen, mich zu führen, wo ich vielleicht falsch liege?CF10 Abfrage mehrere Zeilen für jQuery Autocomplete

<cffunction name="queryNames" access="remote" secureJSON="false"> 
     <cfargument name="searchPhrase"> 

     <cfquery name="query_names" datasource="dsn"> 
      SELECT assoc_userid, assoc_last, assoc_first FROM table 
      WHERE assoc_status = 'ACTIVE' 
     </cfquery> 

     <cfset result = arrayNew(1) > 

     <cfloop query="query_names"> 
      <cfset ArrayAppend(result, query_names.assoc_last)> 
     </cfloop> 

     <cfreturn result> 
    </cffunction> 

JS

<script type="text/javascript"> 
     $(document).ready(function() { 

      $("#name").autocomplete({ 
       source: function(query, response) { 
        $.ajax({ 
         url: "redirects/autocomplete.cfc?method=queryNames&returnformat=json", 
         dataType: "json", 
         data: { 
          searchPhrase: query.term 
         }, 
         success: function(result) { 
          response(result); 
         } 
        }); 
       } 
      }); 
     }); 
    </script> 

Versuchte:

<cfquery name="query_names" datasource="dsn"> 
     SELECT CONCAT(assoc_last, ' ', assoc_first) AS `whole_name` FROM table 
     WHERE assoc_status = 'ACTIVE' 
     and assoc_last NOT LIKE 'Test%' 
     and len(assoc_last) > 0 
     ORDER BY assoc_last 
    </cfquery> 

    <cfset result = arrayNew(1) > 

    <cfloop query="query_names"> 
     <cfset ArrayAppend(result, query_names.whole_name)> 
    </cfloop> 

    <cfreturn result> 
</cffunction> 

+0

Verketten Sie Vorname und Nachname in der Abfrage und versuchen Sie es. – RRK

+0

yep ich gerade brach es lol –

+0

Dies ist für JQueryUI Autovervollständigung richtig? Die meisten Beispiele, die ich gesehen habe, setzen die Abfrage-Informationen zuerst in eine Struktur. Hier ist ein funktionierendes Git Repo, das mehrere Informationen gleichzeitig liefert. https://github.com/trosenow92/JQuery-UI-AutoComplete-in-ColdFusion – TRose

Antwort

0
<cffunction name="queryNames" access="remote" secureJSON="false"> 
     <cfargument name="searchPhrase"> 
      <cfquery name="query_names" datasource="dsn"> 
       SELECT assoc_last + ' ' + assoc_first as whole_name, assoc_userid FROM table 
       WHERE assoc_status = 'ACTIVE' 
       AND (assoc_last like 'searchPhrase%' 
        or assoc_first like 'searchPhrase%') 
      </cfquery> 
     <cfset resultSTRUCT = { 
       'resultcount' = 0, 
       'items' = arraynew(1) 
      }/> 
     <cfif query_names.recordCount> 
     <cfset resultSTRUCT.resultcount = query_names.recordcount/> 
     <cfloop query="query_names"> 
      <cfset arrayappend(resultSTRUCT.items, { 
         "whole_name" = "#whole_name#" 
         ,"id" = "#assoc_userid#" 
        })/> 
     </cfloop> 
     </cfif> 
    <cfreturn result> 

</cffunction> 
+0

Ich wünschte, ich könnte sagen, dass das funktioniert hat, aber das Drop-Down-Ergebnis erscheint nicht einmal mit diesem :( –