2016-09-11 6 views
0

ページの名前による検索機能を実装しようとしています。ユーザは、検索したい名前の一部を入力し、検索をクリックする。クリックすると、関数getUsersByName()が呼び出されます。ajaxクエリからplay framework 1.4変数を設定する方法

function getUsersByName() 
{ 
    var name = document.getElementById("user-search-input").value; 

    if (name !== "") { 
     var data = new FormData(); 
     data.append('name', name); 

     $.ajax({ 
      type: 'GET', 
      url: '/users/name/' + name, 
      data: null, 
      processData: false, 
      contentType: false, 
      success: function (response) { 
       $('#errorspace').text("ok " + response); 
       var table = document.getElementById("user-list-table"); 
       table.refresh(); 
      }, 
      error: function (errorThrown) { 
       $('#errorspace').text(errorThrown); 
      } 
     }); 
    } 
} 

これは/ users/name/{inputname}というアドレスからgetを要求します。これは、パターン%name%と一致する名前をデータベースに照会するメソッドを呼び出します。

public static void getUsersByName(String name) { 

    if (!StringUtils.isEmpty(name)) { 
     String name = "%" + name.toLowerCase() + "%"; 

     List<User> users = 
      User.find("name LIKE :name").setParameter("name", name).fetch(); 
    } 
} 

テーブルをプレイタグリストを使用して、変数のユーザー

<table id="user-list-table"> 
    <tbody> 
     #{list users, as: 'user'} 
     <tr> 
      <td>${user.name}</td> 
      <td><button type="btn btn-default">Add</button></td> 
     </tr> 
     #{/ list} 
    </tbody> 
</table> 

を移入するように設定されて、私はせずに、新たに取得したリストデータを使用して、テーブルを更新することができます任意の方法はありますページ全体をリフレッシュしますか?

答えて

0

個別のスニペットで表を作成し、ajaxコールでそのスニペットをリフレッシュするだけで、通常はスニペットをメインページに含めることができます

関連する問題