如何返回" id"和"文字"

时间:2017-12-08 20:57:09

标签: jquery coldfusion jquery-ui-autocomplete

我正在使用AutoComplete按名称进行搜索。我能够输出名称,但在提交表单后,我想传递emp_id值,而不是fullname。如何修改它以获取emp_id值,而不是fullname

我希望在提交表单后,我得到emp_id而不是fullname值。

search_employee.cfc

<cfcomponent>
    <cffunction name="queryNames" access="remote">
        <cfargument name="searchPhrase" />

        <cfquery name="query_names"  datasource="">
            SELECT  fullname ,emp_id ....
        </cfquery>

        <cfset result = arrayNew(1) />

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

        </cfloop>


        <cfreturn result />
    </cffunction>
</cfcomponent>

的JavaScript

<script>
    $(document).ready(function() {
        $('.gettingName').autocomplete({

            source: function(query, response) {
                $.ajax({
                    url: "test.cfc?method=queryNames&returnformat=json",
                    dataType: "json",
                    data: {
                        searchPhrase: query.term
                    },
                    success: function(result) {
                        response(result);
                    }
                });
            }
        });

</script>

1 个答案:

答案 0 :(得分:3)

您的意思是选择显示“FullName”,还是将其ID存储在另一个表单字段中?

添加用于存储“id”的表单字段:

  <input id="gettingName">
  <input id="theValue">

修改组件以返回结构数组。每个结构包含两个名为“value”(id)和“label”(fullName)的键。

<cfloop query="local.query_names">
    <cfset local.data = {"value": emp_id, "label": fullName}>
    <cfset ArrayAppend(local.result, local.data) />
</cfloop>

在javascript中,使用select eventupdate the values of the two fields

select: function(event, ui) {
    $('#gettingName').val(ui.item.label);
    $('#theValue').val(ui.item.value);
    return false; 
},