繁体   English   中英

如何使用Rails和Ajax加载div?

[英]How to load a div with Rails and ajax?

我有一个充满产品(产品控制器)的索引页面,我可以通过单击“订单”按钮来创建订单,这会将用户引导到订单控制器的“新”操作,并将产品ID作为参数传递。

  def new
    @order = Order.new
    @product = Product.find(params[:product])
  end

用户可以在那里选择所需数量并最终创建订单。

但是,我想在单击“订单”时弹出一个模式窗口,其中带有“新订单”页面中的表格。 因此,我将data-remote属性添加到“订购”按钮:

<%= link_to('Order', new_order_path(product: product), class: "btn btn-order", remote: true) %>

更新了您的控制器:

def new
    @order = Order.new
    @product = Product.find(params[:product])

    respond_to do |format|
      format.html
      format.js
    end
  end

并创建了new.js.erb文件,该文件打开了我的模式窗口

function openModal = somecode...

但是,如何获取超出链接范围的FORM的html? 我不想渲染部分,只希望将表单代码粘贴到我的模式窗口的.html('...')中!

谢谢!

您可以使用jQuery将表单内容添加到DOM中,方法是将其作为部分内容呈现在new.js.erb文件中,如下所示:

$('#modal_id').html('<%= escape_javascript(render(partial: "path/to/partial", object: @instance_variable)) %>');

编辑:在二读您的问题时,我看到您提到您不希望呈现部分内容,因此您可以直接在new视图中直接使用表单代码。 像这样的东西:

var form_html = '<form>...</form>';
$('#modal_id').html(form_html);

我希望这有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM