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