2013-01-07 111 views
0

我有一個很長的表格,我想分解成大約5個部分。當用戶在每個部分的底部點擊'Next'時,我想使用AJAX加載下一個部分,直到最後一部分將整個表單提交到數據庫。另外,如果用戶點擊「上一頁」,我需要填寫用戶填寫的內容。通過多個部分提交表格

到目前爲止,我有這裏面是不工作:

用戶/ new.html.erb

<%= form_for(@user, :html => { :class => "form-horizontal" }, remote: true) do |f| %> 
... 
<%= f.submit "Next" %> 

users_controller.rb

def create 
    @user = User.new(params[:user]) 
    if @user.save 
     respond_to do |format| 
     format.html { flash[:success] = "Welcome to Friends First!" 
        redirect_to @user } 
     format.js 
     end 
    else 
     render :new 
    end 
    end 

create.js .erb

$("#site_content").html("<%= escape_javascript(render('layouts/partial2')) %>"); 

回答

0

我會把5個部分的每一個放到單獨的div(display:none)中,並且只顯示(display:block)第一部分。當用戶點擊「下一步」,我會表現出第二個,等最後提交創建操作,也可以通過jQuery實現通過

$.ajax(
    url: '/users', 
    type: 'post', 
    data: $("form").serialize() 
) 

我希望幫助。