Coldfusion在autosuggest中剥离前导零

时间:2011-09-23 19:50:32

标签: coldfusion autosuggest

我刚刚遇到CF的不需要的“功能”,它涉及从返回到autosuggest输入的值中删除前导零。我以为我可以在值之前添加一些字符并在返回后删除它们,但是遇到了障碍。我正在修改现有的函数,如下所示:

<cffunction name="lookupTailNumber" 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">
        SELECT DISTINCT SERIAL_NUMBER AS list
        FROM aircraft_status
        WHERE SERIAL_NUMBER LIKE '%#trim(ARGUMENTS.search)#%'
        ORDER BY list
    </cfquery>

    <!--- Build result array --->
    <cfloop query="data">
        <cfset ArrayAppend(result, list)>
    </cfloop>

    <!--- And return it --->
    <cfreturn result>

</cffunction>

返回一个如下所示的响应:

[3001.0,1.00002E8,1.00002001E8,1.00002002E8,1.00002003E8,1.00002004E8]

或采用JSON格式:

0     3001

1     100002000

2     100002001

3     100002002

4     100002003

所有结果都被删除了前导零。我已经尝试修改查询以在每个值前添加一个字符:

<cfquery name="data">
        SELECT DISTINCT (concat(' ', SERIAL_NUMBER)) AS list
        FROM aircraft_status
        WHERE SERIAL_NUMBER LIKE '%#trim(ARGUMENTS.search)#%'
        ORDER BY list
    </cfquery>

返回:

[" 0000003001"," 0100002000"," 0100002001"," 0100002002"," 0100002003"," 0100002004"]

所以你认为一切都很好,对吧?问题:返回时,autosuggest字段中没有显示任何值!我也试过预先添加不同的字符,包括数字,没有运气。查看yui-ac-bd div中的元素&gt; ul,none没有填充或显示。

输入声明如下:

<cfinput style = "width:300px;"
                     class = ""
                     type="text"
                     name="txtvalueFilter"
                     maxlength="15"
                     id="txtvalueFilter"
                     autosuggest="cfc:mycfcpath({cfautosuggestvalue})"
            />

思想?

1 个答案:

答案 0 :(得分:1)

尝试附加一个空格,因此内置的JSON序列化程序会将其视为字符串而不是JSON中的int。

另外,请确保已为您的CF版本安装了最新的修补程序。

我想知道你是否需要“构建结果数组”。如果您返回data.list会怎样?或者,也许使用ListToArray(valueList(data.list))