我正在使用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>

最佳答案

您是说显示所选的“全名”,而是将其ID存储在另一个表单字段中?

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

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


修改组件以返回结构数组。每个结构包含两个名为“值”(id)和“标签”(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;
},

关于jquery - 如何同时返回“id”和“text”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47722031/

10-12 00:05