我一直在努力争取如何使这项工作成功。我正在使用bootstrap pager方法为我一直在玩的语言学习网站提供'next','previous'和'take quiz'按钮。我已经得到了javascript和ajax工作,当我点击按钮时,不需要页面刷新,我也可以检测单击某个特定按钮的时间。
我遇到的困难是提交另一个ajax请求以将信息传递回我的rails控制器。例如,如果单击下一个按钮或采取测验按钮,则会增加一个变量,然后我需要使用该变量来更新我的数据库和服务器端。前一个按钮执行相同操作但递减变量。
这是我的JS:
$(function() {
function nextHandler() {
gon.bookmark = gon.bookmark + 1; #using gon gem and bookmark is a column in my DB
}
function previousHandler() {
gon.bookmark = gon.bookmark - 1; #using gon gem and bookmark is a column in my DB
}
function takeQuizHandler() {
gon.bookmark = gon.bookmark + 1; #using gon gem and bookmark is a column in my DB
}
$(".Next").click(nextHandler);
$(".Previous").click(previousHandler);
$(".TakeQuiz").click(takeQuizHandler);
});
继承我的观点文件:
<div class="center hero-unit">
<%= @word.english %>, <%= @word.english_to_spanish %>
<% if @lastDigit == 0 %>
<ul class="pager">
<li class="Previous"><a href="/langs/<%= @wordBM - 1 %>">Previous</a></li>
<li class="TakeQuiz"><a href="/langs/<%= @wordBM + 1 %>">Take Quiz</a></li>
</ul>
<% elsif @lastDigit == 1 %>
<ul class="pager">
<li class ="Next"><a href="/langs/<%= @wordBM + 1 %>">Next</a></li>
</ul>
<% else %>
<ul class="pager">
<li class="Previous"><a href="/langs/<%= @wordBM - 1 %>">Previous</a></li>
<li class="Next"><a href="/langs/<%= @wordBM + 1 %>">Next</a></li>
</ul>
<% end %>
</div>
这是我的langs控制器:
class LangsController < ApplicationController
def show
@word = Lang.find(params[:id])
@wordBM = current_user.bookmark
gon.bookmark = @wordBM
digitArray = @wordBM.to_s.split('')
lastIndex = digitArray.length - 1
@lastDigit = digitArray[lastIndex].to_i
end
end
非常感谢任何帮助,如果我发生错误请告诉我。我绝对是铁杆菜鸟。