2013-07-23 119 views
0

我有一个HTML标记周期性请求(在线用户列表)Mootools的列表过滤:与服务器

<div id="users"> 
    <div class="users_row" title="User1">User1</div> 
    <div class="users_row" title="User2">User2</div> 
    <div class="users_row" title="User3">User3</div> 
    <div class="users_row" title="User4">User4</div> 
</div> 

我的mootools JS以下功能(周期函数每5秒):

 get_users: function() {     

       new Request.JSON({ 
        initialDelay: 1, 
        delay: 10000, 
        limit: 25000, 
        method: 'post', 
        url: 'handler.php', 

         onSuccess: function(data){ 
          if (data.users.length) { 
           data.users.each(function(u){ 
/*Wrong...*/          
new Element('div', {'html':u.name, 'class': 'user_row', 'title': u.name}).inject(document.id('users')); 

           });  
          }  
         } 
       }); 
     } 

例如,我从我的handler.php中获取User1,User2,User3,User5。 如何重建我的在线用户列表?

<div id="users"> 
     <div class="users_row" title="User1">User1</div> 
     <div class="users_row" title="User2">User2</div> 
     <div class="users_row" title="User3">User3</div> 
     <!--<div class="users_row" title="User4">User4</div>!--> // Remove User4 
     <div class="users_row" title="User5">User5</div> // Add User5 
</div> 

P.S:这个答案是不能接受的:)

document.id('users').set('html', '<div class="users_row" title="'+u.name+'">'+u.name+'</div>); 

感谢。

P.S:从服务器我的JSON示例:

{"users":[{"name":"User1"},{"name":"User2"},{"name":"User3"},{"name":"User5"}],"total":4} 
+0

确实请求后,总用户数量的变化?或者你只是替换你已有的标记的标题和HTML? – Sergio

+0

是的。它可能会改变。例如房间里的新成员。或有人离开房间。谢谢。 – user889349

+0

你可以发布你的JSON /请求数据的样本吗? – Rikard

回答

0

试试这个:
检查演示here

for (i = 0; i < users.users.length; i++) { 
     var el = new Element('div', { 
      'class': 'users_row', 
      'html': users.users[i].name 
     }); 
     el.inject(usersDivId); 
    }