如何使用多步骤实现分页?OR 是他们在使用分页时保持上一页单选按钮值的任何方式



我正在创建一个轨道测验.. 我已经完成了所有工作 问题是我想实现分页,当用户转到下一页时,上一页的值丢失了。 我是 Rails 的新手。

查看页面 -- 显示试卷

<div class="navbar navbar-fixed-top">
<h3><% if @paper.timing!=0 %><div id="time" class="bg"></div><%end%></h3>
</div>
<br>
<%= form_for Result.new do |f| %> 
<div id="content">
  <div class="inputs"> 
<div>
  <div>
    <div>
      <div>
          <% @questions.each_with_index do |question , i | %> 
          <%= f.hidden_field :userchoice_id, :value => session[:id] %>
          <%= f.hidden_field :exam_id, :value => session[:exam_id] %><br>
          <h3> <%= i + 1 %>.<%= question.content %></h3><br>
            <%count = 0%>
            <% a=question.answers %>
            <%#raise a.inspect%>
            <% a.each do |sushil|  %>
            <%#raise sushil.inspect%>
            <% if sushil.correct_answer?%>
            <%count = count+1 %>
            <%else %>
             <%count = count+0 %>
          <%end%>
         <%end%>
         <%#raise count.inspect%>
          <%if count == 1 %>
          <% for answer in question.answers %>
          <%= radio_button_tag("result[question_id][#{question.id}]", answer.id )  %>
          <%= answer.content %><br>
          <%end%>
          <%elsif count >= 2 %>
           <% for answer in question.answers %>
          <%= check_box_tag("result[question_ids][][#{question.id}]", answer.id )  %>
          <%#= check_box_tag ("result[question_id][#{question.id}]", answer.id ) %>
          <%= answer.content %><br>
          <% params[:answer_id] = answer.id %>

          <%end%>
        <% end %>
        <%# raise params[:answer_id].inspect%> 
  <% end %>
</div>
   <div class="form-actions">
          <center><%= f.submit "Submit", :class => 'btn btn-primary',:onclick => "if(confirm('Are you sure you want to Submit the Paper?'))  return true;  else  return false;" %></center>
  </div>
<% end %>
</div>
</div>
  </div> 
<div style='display:none' id="timeup"><% if @time==0 %>0<%else%>1<%end%></div>

<!-- Added javascript  for back button-->
    <script>
        jQuery(document).ready(function($) {
          if (window.history && window.history.pushState) {
          window.history.pushState('forward', null, './#forward');
          $(window).on('popstate', function() {
          history.forward();
        });
      }
    });
    </script>

<!-- Added Timer Javascript in Test   -->
<% if @paper.timing!=0 %>
        <script>
        $(document).ready(function(){
        var now=new Date();
        if($('#timeup').html()==0){
          stopTest();
        }
        now.setMinutes(now.getMinutes()+<%=@min%>);
        now.setSeconds(now.getSeconds()-<%=@sec%>);
       $('#time').countdown({until:now, format: 'MS',onExpiry:stopTest});
        });
        function stopTest(){
          $('#time').html('<center><h4>Time's up!</h4></center>');
          $('#timeup').html('0');
          // $('input.radio').attr("onclick","return false;");
          $("#new_result").submit();
        }
        </script>
<%end%>

你应该使用kaminari或will_paginate宝石...

卡米纳里的例子:

宝石文件:

gem 'kaminari'

砰:

bundle
rails g kaminari:views default

products_controller.rb:

@products = Product.order("name").page(params[:page]).per(5)

config/locales/en.yml:

en:
  hello: "Hello world"
  views:
    pagination:
      previous: "&lt; Previous"
      next: "Next &gt;"
      truncate: "..."

产品/索引.html.erb:

<%= paginate @products %>

app/views/kaminari/_prev_span.html.erb

<span class="prev disabled"><%= raw(t 'views.pagination.previous') %></span>

Will_paginate示例:

http://richonrails.com/articles/getting-started-with-will-paginate

相关内容

最新更新