Hai Just started to learn Ruby on Rails I have a list of users displayed as rows and towards each row there is a check box. There is a "Select All" , and "Approve" buttons. On clicking the Select All button I want to check all the check boxes or can check the boxes separtely if don't want to check all the boxes and then after submitting the Approve button wish to change the status of the selecteds users(which users whose check box is checked) to approved. Pls give me suggestions in doing this.
<table width="100%" border="1"> <tr><td colspan="6" align="center"><h3>User list</h3></td> </tr> <tr> <th>Name</th> <th>User Name</th> <th>Address</th> <th> Country</th> <th>Language</th>
<th> <%= submit_tag "Select All", :onclick=>"return check_all()" %> </th>
</tr> <% count = 0 %> <%= form_tag :controller=>"user",:action=>"list_users"%> <% for user in @users %> <% count = count + 1%> <tr> <td align="center"><%=link_to user.name,:controller=>"User",:action=>"edit", :id=>user.id %></td> <td align="center"><%= user.username %></td> <td align="center"><%= user.address %></td> <td align="center"><%= user.country.name %></td> <td align="center"><%= user.language.language %> <td> <%= check_box_tag "user_status"+count.to_s,user.id%> </tr> <% end %> <%= hidden_field_tag "h_id" ,count %> <tr><td colspan="6" align="center"> <%= will_paginate @users %><br> <%= submit_tag "Approve", :controller=>"user" ,:action=>"list_users",:class=>"test"%> </table>
and in my controller I tried this one
def list_users
if !(params[:search].blank? and params[:country_id].blank?) if request.post? and params[:commit] == "Search" @users = User.search(params[:search],params[:country_id],params[:page]) else
@users = User.paginate :page=>params[:page],:per_page => 2 end else @users = User.paginate :page=>params[:page],:per_page => 2 end if @users.blank? flash[:notice] = 'No Records Found.' end
if request.post? and params[:commit] == "Approve" params[:user_status].each do |ln| @user = User.find(ln) @user.update_attribute(:user_status,1) end
end end Now if selected users separately(not by using the "Select All" button) the status of the selected users are changing. But the "Select All" button is not working. ie when clicking on the "Select All" button only the first one in the list is selecting
and in my javascript i wrote function check_all() { var count = document.getElementById('h_id').value; for(i=1;i<=count;i++){ document.getElementById('user_status'+i).checked = true } return false; } Pleas help in solving this problem Thanks in advance