从coldfusion查询中形成json以用于jquery自动完成

我很难过。 我有一个现有的自动完成function,当从ColdFusion自动提示输入调用时,该function有效。 现在,我正在尝试将页面转换为使用jQuery自动完成输入,并且无法使其工作。 这是autosuggest.cfc中的现有函数:

       SELECT DISTINCT SERIAL_NUMBER FROM myTable WHERE SERIAL_NUMBER LIKE '%#trim(ARGUMENTS.search)#%' ORDER BY SERIAL_NUMBER         

当我在输入“01”后从我的自动完成输入中调用它时,控制台会显示如下响应:

  ["0000003001","0100002000","0100002001","0100002002","0100002003","0100002004",7300000100,7300000101,7300000102,7300000103,7300000104,7300000105,7300000107,7300000108,7300000109,7300000110,7300000111,7300000112] 

请注意,前六个响应在双引号内,而其余的不是。 自动完成显示前六个响应,但不显示其余响应。

这是我的第一个问题。 第二个是我希望将响应注入到输入的文本和值中; 目前,只有文本显示响应。 我并不感到惊讶,因为我只返回一个值。 但是,我无法弄清楚如何实现这一目标。

我尝试用解析函数初始化自动完成,如下所示:

 $(document).ready(function(){ $('#myInputID').autocomplete( {source: function(request, response) { $.ajax({ url: "cfc/autoSuggest.cfc?method=lookupSerialNumber>&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 }; }); } }); }); 

但这没有任何结果。 由于解析function不在自动完成API中,我在这里盲目。

我认为这些问题足够相关,不能将它们分成两个问题; 如果你认为我应该告诉我。 一如既往,谢谢。

将查询结果放在结构中并将其添加到数组中。 然后转换为json。 自动完成期望json返回, labelvalue字段或两者都有。 这是一个例子:

         SELECT DISTINCT SERIAL_NUMBER FROM myTable WHERE SERIAL_NUMBER LIKE  ORDER BY SERIAL_NUMBER           

如果它在您使用的任何CF版本中都可用,则可以使用serializeJSON函数。 如果没有,请手动构建json字符串。

这是一个啧啧: http : //www.jensbits.com/2010/03/18/jquery-ui-autocomplete-with-coldfusion/

刚刚遇到这个寻找类似的解决方案,但我必须说,返回结构数组并不遵循JSON AJAX返回的大多数约定,即使在使用serializeJSON之后也是如此。

另一个答案返回类似的东西

 [{key:value}, {key:value}, {key:value}...] 

而通常,你想看到

 {key:value,key:value,key:value...} 

所以这是我需要使用后一种格式的代码的调整版本

         SELECT DISTINCT SERIAL_NUMBER FROM myTable WHERE SERIAL_NUMBER LIKE '%#trim(ARGUMENTS.search)#%' ORDER BY SERIAL_NUMBER           

这样做的好处是更容易解析:

 $.ajax({ url: 'path/to.cfc', dataType: 'json', data: { search: searchWord } success: function(data) { //Easy Parsing Bit here... $.each(data, function(key, val) { alert(key + ': ' + val); }) } }) 

而在此之前,您必须输入数组THEN解析各个JSON条目…

使用Mura CMS在OO Fashion中进行CFRemoting在这里……

snProxy.cfc

        SELECT DISTINCT SERIAL_NUMBER FROM tbl_serial_numbers WHERE SERIAL_NUMBER like        

JQuery Bind ……