我正在使用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 event至update 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/