我正在使用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>
答案 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 event至update the values of the two fields。
select: function(event, ui) {
$('#gettingName').val(ui.item.label);
$('#theValue').val(ui.item.value);
return false;
},