gpt4 book ai didi

ajax - 使用 AJAX 搜索、排序

转载 作者:行者123 更新时间:2023-12-01 04:24:54 24 4
gpt4 key购买 nike

我复制了 RailsCasts 剧集 240 中的代码。我不知道为什么这段代码 Ajax 请求不起作用。搜索功能使用正常方法(重新加载页面),遗憾的是不通过 Ajax。排序功能根本不起作用。

我已经包含了以下 JavaScript 库:

  • application.js
  • jQuery JavaScript 库 v1.6.2
  • jQuery UI 1.8.15
  • jQuery.rails.js
  • jQuery TinySort v1.1.0

如果您需要更多信息,请告诉我。我真的希望你能帮助我解决问题。

users_controller.rb

def index
@users = User.search(params[:search]).order(sort_column + " " + sort_direction)

respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @users }
end
end

def sort_column
User.column_names.include?(params[:sort]) ? params[:sort] : "lastname"
end

def sort_direction
%w[asc desc].include?(params[:direction]) ? params[:direction] : "asc"
end

index.html.erb

<h1>Listing users</h1>

<%= form_tag users_path, :method => 'get', :id => "users_search" do %>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil %>
</p>
<div id="users">
<%= render 'users' %>
</div>
<% end %>

_users.html.erb

<%= hidden_field_tag :direction, params[:direction] %>
<%= hidden_field_tag :sort, params[:sort] %>
<table class="pretty">
<tr>
<th><%= sortable "Last name" %></th>
<th><%= sortable "First name" %></th>
</tr>
<% for user in @users %>
<tr>
<td><%= user.lastname %></td>
<td><%= user.firstname %></td>
</tr>
<% end %>
</table>

index.js.erb

$("#users").html("<%= escape_javascript(render("users")) %>");

users_helper.rb

def sortable(column, title = nil)
title ||= column.titleize
css_class = column == sort_column ? "current #{sort_direction}" : nil
direction = column == sort_column && sort_direction == "asc" ? "desc" : "asc"
link_to title, params.merge(:sort => column, :direction => direction, :page => nil), {:class => css_class}
end

application.js

$(function() {
$("#users th a").live("click", function() {
$.getScript(this.href);
return false;
});
$("#users_search input").keyup(function() {
$.get($("#users_search").attr("action"), $("#users_search").serialize(), null, "script");
return false;
});
});

感谢您的帮助!

最佳答案

要使上述代码正常工作,您必须删除以下代码行。

respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @users }
end

现在可以了。 :-)

关于ajax - 使用 AJAX 搜索、排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7201497/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com