2013-01-07 114 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() 
) 

我希望帮助。