[Rails] response from ajax request

Eric Artzt ericartzt at gmail.com
Thu Jul 27 19:25:53 GMT 2006


Hi, newbie here.

I am trying to implement a filtering interface using observe_field. 
Using firebug I can see that I am getting the properly rendered html 
blob back in the response, but when it get inserted into the dom element 
that I am targeting, the plain html elements from the partial template 
have been stripped, leaving only the elements inserted via the <%= 
statements. I would appreciate any hints.

Best,
Eric



here is the controller action that responds to the ajax request:

===============================
 def find_users
 
    @user_is_admin = is_admin
      @user_pages, @users = paginate :users, :order_by => 'login',
         :per_page => 10, :conditions => "name like '%kyle%' or children 
like '%kyle%'"
    # add error checking later
    render :partial => "listing_table", :layout=>false

  end
  ===============================

here is the containing layout showing the search field:

================================
<%= start_table %>
<%= start_form_tag('javascript:void%200', {:method=> 'filter'}) %>
<tr>
<th>Type a member to find:</th>
<td><%= text_field_tag "finduser", "", :size => 35 %></p>
</tr>
<%= observe_field(:finduser,
    :url => { :action => "find_users" },
    :frequency => 0.5,
    :update => :listing,
#    :complete=>"Element.hide('spinner')",
#    :before=>"Element.show('spinner')",
    :with=>"'search=' + encodeURIComponent(value)"
    ) %>
<%= end_form_tag %>
<%= end_table %>
<br />

<%= start_table :listing %>
<%= render :partial => "listing_table" %>
<%= end_table %>
================================

here is the partial:

================================
  <tr>
<% if @user_is_admin %>   
  <th>User ID</th>
<% end %>
  <th>Name</th>
  <th>Address</th>
  <th>Contacts</th>
  <td class="clear"><%= image_tag "spacer.gif", :width=> 72, :height => 
1 %></td>
  </tr>
<%
    for user in @users
%>
    <tr valign="top" class="<%= cycle("alt0", "alt1") %>">
<% if @user_is_admin %>   
    <td><%= user.login %></td>
<% end %>
    <td>
       <%= user.name %>
       <%= make_new_line user.children %>
    </td>
    <td><pre><%= user.address %></pre></td>
    <td>
       <%  user.contacts.each do |contact| %>
           <%=contact.description %>:&nbsp;
           <% case contact.contact_type
              when CONTACT_PHONE %>
           <%= fmt_phone contact.phone %>
           <% when CONTACT_EMAIL %>
           <%= mail_to contact.email %>
           <% end %>
           <br />
        <% end %>
    </td>
<% if @user_is_admin %>   
    <td class="clear">
        <%= link_to image_tag("b_edit", { :style => 'border: none', 
:title => 'Edit user' }), { :action => 'edit', :id => user } %>&nbsp;
        <%= link_to image_tag("b_secure", { :style => 'border: none', 
:title => 'Reset password' }), { :action => 'resetpassword', :id => user 
}, :confirm => "Confirm changing password for user \"#{user.login}\"?" 
%>&nbsp;
        <%= link_to image_tag("b_drop", { :style => 'border: none', 
:title => 'Delete user' }), {:action => 'destroy', :id => user}, 
:confirm => "Confirm deletion of user \"#{user.login}\"?" %>
    </td>
<% end %>
    </tr>
<% end %>
============================


More information about the Rails mailing list