【问题标题】:Submit a simple form using ajax and rails使用 ajax 和 rails 提交一个简单的表单
【发布时间】:2012-08-08 14:27:08
【问题描述】:

我正在尝试使用 ajax 构建表单。

我阅读了this 教程,但我不清楚。

我想提交一个简单的表单并在同一页面中显示结果而不刷新页面。我的应用程序中没有模型。我只是想提交一个表单,向 api 发出请求并将结果显示回页面。

如果我使用这个例如:

<form method="post" action="/my_controller/my_action" class="button_to" data-remote="true" data-type="json">
  <input type="text" ..>
  <input type="text" ..>
  <div><input value="Show" type="submit" /></div>
</form>

如何在 my_controller 中获取这些值以及如何显示回视图?

感谢您的帮助

【问题讨论】:

    标签: jquery ruby-on-rails ajax model-view-controller controller


    【解决方案1】:

    你的表格

    <form method="post" action="/my_controller/my_action" class="button_to" data-remote="true"       data-type="script">
      <input type="text" name="value1">
      <input type="text" name="value1">
      <div><input value="Show" type="submit" /></div>
    </form>
    

    你的显示 div 标签

    <div id="feeds"></div>
    

    你的行动

    def my_action
       @value1 = params[:value1]
       @value1 = params[:value2]
       respond_to do |format|
          format.js
       end       
    end
    

    你的看法 my/my_action.js.erb

    $('#feeds').prepend("<%= j ("<p>#{@value1}-#{@value2}</p>") %>");
    

    【讨论】:

    • 最后一部分对我不起作用。我试图把alert("test") 和什么都没有。 =/
    【解决方案2】:

    使用jquery的ajax方法

    $.ajax({
     url:'/path/to/controller',     
     type:'GET',
     data:{formData:$('form').serialize()},
     success:function(data){
     //do what ever with the response
     }
    
    });
    

    您还可以附加错误事件处理程序

    http://api.jquery.com/jQuery.ajax/

    【讨论】:

      【解决方案3】:

      我尝试编辑@MuhammetDILEK 的答案,这几乎对我有用。 但是,我需要在表单中使用data-type="script" 而不是data-type="json",如下所述: https://stackoverflow.com/a/15115551/3472491

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-13
        相关资源
        最近更新 更多