gpt4 book ai didi

javascript - Rails 分页 - 带参数的 Ajax 数据输入

转载 作者:行者123 更新时间:2023-12-03 03:27:57 26 4
gpt4 key购买 nike

所以我使用 Kaminari gem 在我的应用程序中实现无限滚动。我遇到的问题是每次在 Ajax 调用中都向 Controller 提供搜索参数。

def create
@onsearch = true
@lists = current_user.lists.all
@search = params[:search]
@page = params[:page]
puts "Search is #{@search}, page is #{@page}"
@outfits = Oufits.where("description LIKE ?", "%#{params[:search]}%").page(params[:page]).per(20)
respond_to do |format|
format.html
format.csv { send_data @outfits.to_csv }
format.xls
format.js {render :layout => false }
end

结束

这是当用户滚动到页面底部时我调用的 ajax:

  $.ajax({
type: "GET",
url: url,
data : { search : '<%= @search %>'},
dataType: 'script',
beforeSend: function(){
$('.sk-wave').show();
},
complete: function(){
$('.sk-wave').hide();
},
success: function(response){
$('.sk-wave').hide();
},
error: function(jqXHR, textStatus, errorThrown ){
alert("oh no! ajax went wrong.")
$('.sk-wave').hide();
console.log("jqXHR = "+JSON.stringify(jqXHR));
console.log("textStatus = "+JSON.stringify(textStatus));
console.log("errorThrown = "+JSON.stringify(errorThrown));
}
});
}

当我用 Javascript 响应时渲染的部分工作正常,并将其余内容完美地添加到页面中。

$('.pagecontent').append("<%=j render(partial: 'search/outfits', 
format: 'html') %>");

<% if @outfits.current_page == @outfits.total_pages %>
$('#view-more').remove();
<% else %>
$('#view-more a').attr('href', '<%= url_for(page:
@outfits.current_page + 1) %>');
<% end %>

但经过检查,搜索参数在我的 Controller 中以文字字符串“<%= @search %>”形式接收。我已经在谷歌上搜索了如何将 erb 变量传递给 javascript,但对于我想要做的事情来说,它似乎太复杂了。那我怎样才能确保每次都通过呢?感谢您的帮助

最佳答案

您有几个问题:

'<%= @search %>'没有按你的预期工作。 app/assets 中的 Assets 文件directroy 无法访问您的 View 变量,因为它是在部署应用程序时在服务器上预编译的。

<input type="hidden" id="foo" name="zyx" value="<%= @search %>" />
var value = $('input#foo').val()

将变量传递给 ajax使用hidden_input值为@search ,并通过 jquery 获取它.

"GET"没有 body ,这意味着你的data键作为查询字符串传递。

使用"POST" .

关于javascript - Rails 分页 - 带参数的 Ajax 数据输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46233276/

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