这是我的问题。我想创建一个具有特定标题行的表,看起来像这样
<table>
<tr class="table-header"> <th></th><th> Name </th><th> Location </th></tr>
..data..
</table>
当我想要对表行进行ajax填充时,问题就出现了。我尝试了几种选择。基本上我的应用程序知道使用#table-data这样的选择器插入数据的位置。它会更新,但会覆盖表格标题,或者将其全部插入一列,或者将其放在标题上方等。我尝试使用div <p>
,<tr>
等进行更新。它似乎永远不会成功。
我的行动如下:
def multi_search
@profiles = Profile.find(:all) do
first_name =~ "%#{params[:profile][:first_name]}%" if params[:profile][:first_name].present?
last_name =~ "%#{params[:profile][:last_name]}%" if params[:profile][:last_name].present?
city =~ "%#{params[:profile][:city]}%" if params[:profile][:city].present?
state =~ "%#{params[:profile][:state]}%" if params[:profile][:state].present?
type =~ "%#{params[:profile][:type]}%"
paginate :page => params[:page], :per_page => params[:rows]
order_by "#{params[:sidx]} #{params[:sord]}"
end
render :partial=> "search/search_results", :collection => @profiles, :as=>:profile
end
我的javascript看起来像这样:
$("#ajax_search_form").ajaxForm({target: '#provider_search_results'})
我的部分看起来像这样:
<tr>
<td class="table_user_image"><%= image_tag profile.avatar.url(:small) %></td>
<td class="table_user_name">
<%= link_to_if(profile.user.role=="Provider", profile.full_name, { :controller => "profiles", :action => "show_public_provider", :id=>profile.id}) do
link_to(profile.full_name, { :controller => "profiles", :action => "show_public_student", :id => profile.id })
end %></td>
<td class="table_user_location"> <%= profile.city %>, <%= profile.state %> </td>
</tr>
无论如何,我想在进入集合之前我需要渲染一些静态文本,而我不知道该怎么做。任何帮助将不胜感激。
注意:我正在使用jrails
答案 0 :(得分:1)
通过.ajaxForm()
电话,您可以自行处理回复。您不必使用target
选项,而是必须通过指定执行以下操作的success
option with a function来处理响应:
$("#MyTable tr:not(.table-header)").remove()
$("#MyTable").append(response)
另一个选项是render a partial包含您的标题行,并且还会将您的原始部分呈现给您的集合。部分呈现另一部分。