我一直在使用Searchable来搜索用户创建的联系人。到目前为止,它工作正常。现在我想实现过滤,比如搜索那些是“买方”类型联系人的联系人。为此,首先用户必须从选择框中选择“联系人类型”并按名称搜索联系人。
我的问题是它显示了搜索结果,但它们未按联系人类型进行过滤。就像当我选择“Contact_Type”为“买方”并命名为“vim”时,它会显示带有vim的搜索结果,但不会对Contact_Type进行过滤。
ContactController中的搜索方法:
def search = {
def query = params.q
def filterContact = params.filter
if(query && filterContact){
def srchResults = searchableService.search(query, filterContact)
render(view: "list",
model: [contactInstanceList: srchResults.results,
contactInstanceTotal:srchResults.total])
}
else{
render "not record found";
}
}
选择框
<g:select style=" background:transparent;border:none;margin-bottom:10px;color:#787878;" from="${com.vproc.enquiry.ContactType?.values()}"
noSelection="['':'Search By']" value="${contactInstance?.contactType?.values()}" name="filter" />
重定向到搜索结果的JS方法:
<script type="text/javascript">
function showContact(id){
document.location.href ='/VProcureFinal/contact/search?q=' + $("#"+ id).val()
+ "&filter=" + $("#filter").val();
}
</script>
假设我创建了一个名为“Vim”且contact_type为“Buyer”的联系人。当我使用contact_type =“Seller”和name =“Vim”进行搜索时,它仍会显示搜索结果,但不应显示此信息。是否有人知道如何执行此操作?