0

我一直在使用 Searchable 来搜索用户创建的联系人。到目前为止,它工作正常。现在我想实现过滤,比如搜索那些“买家”类型的联系人。为此,首先用户必须从选择框中选择“联系人类型”并按姓名搜索联系人。

我的问题是它显示搜索结果,但它们没有按联系人类型过滤。就像我选择“Contact_Type”作为“Buyer”并将名称选择为“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' 搜索它时,它仍然显示搜索结果但它不应该显示这个。有谁知道如何做到这一点?

4

0 回答 0