我想通过ajax更新表单提交而无需重新加载页面并根据它更新视图。我尝试了不同的方法,但作为Rails的新手失败了。
这是情况。
模态
def new
@new_entry = current_user.notes.build
@words = current_user.notes
@notes_false_list = current_user.notes.where(known: false).order("title").group_by { |note| note.title[0] }
@notes_true_list = current_user.notes.where(known: true).order("title").group_by { |note| note.title[0] }
end
在查看表单代码。
<%= form_for @new_entry, :html => {:class => 'home-form without-entry clearfix'} do |f| %>
<%= f.text_field :title, placeholder: 'Squirrel', autofocus: true, class: 'title-field pull-left' %>
<%= f.submit '', class: 'btn home-add without-entry' %>
<% end %>
创建动作
def create
@new_note = current_user.notes.build(new_note_params)
if @new_note.save
@notes_list = current_user.notes.count
unless @new_note.user.any_entry
@new_note.user.toggle!(:any_entry) if @notes_list >= 50
redirect_to root_url
end
else
redirect_to root_url
end
end
最后我认为我想改变
<p class="instructions count-instruction text-center">
<%= @words.count %>
</p>
花了很多时间用AJAX进行更新,但每次都失败。有什么需要帮助的吗?提前致谢。
您的代码不错,但是对于 ajax来说 ,
<%= form_for(@image,:html=>{:id=>"your_form_id",:multipart => true,:remote=>true}) do |f |%>
views/users/show_updated_view.js.erb
以将其作为js调用 而非 NOT html调用来回复浏览器,因此需要向用户显示表单提交后发生了某些事情(成功/错误)(如果其users_controller
),因此,在您的操作中,您需要执行以下操作:
respond_to do |format|
format.js { render 'users/show_updated_view'}
end
show_updated_view.js.erb
,您应该通过隐藏整个表单/重置表单或将表单替换为新的div(表示数据已更新)来更新视图,以使用户知道该视图已更新或表单已成功提交。任何直观的方法虽然有很多方法:)。//这里我用div替换了整个表格
$("#your_form_id").html("<div><p>You have submitted the form successfully.</p></div>")
;
视图的名称可以是任何名称,但是您需要兼顾成功和失败。
问题内容: 我想知道如何通过Ajax(使用原型框架)提交表单,并在“结果” div中显示服务器响应。HTML看起来像这样: 我尝试将javascript函数(使用Ajax.Updater)附加到“ onsubmit”(在表单上)和“ onclick”(在输入上),但是在函数结束后,表单仍然是“ non-Ajax”提交的(因此整个页面被结果替换)。 问题答案: 查看和处理Prototype API的
问题内容: 所以假设我有3种形式 每个表单都有自己的提交按钮 现在假设我有另一种形式 其唯一的功能是同时提交所有其他3种形式。…现在这里是约束: 当submitAll提交后,它必须使用Ajax这样做,并且最好通过POST将输入的数据从所有其他3种形式转发到processor.php processor.php需要能够区分输入到哪种形式…然后分别处理每种形式的输入 我的问题是..什么是使proces
问题内容: 我正在使用以下jQuery代码通过AJAX提交表单。 代码完美运行,没有ajax。 但是,如果我通过Ajax加载表单,则无法正常工作。 我认为这是因为JavaScript加载后通过ajax加载了表单。 有什么办法吗? 问题答案: 如果使用jQuery 1.7+,则可以尝试使用.on()委托事件并绑定到具有相同类的所有将来的表单。尝试查找没有动态插入的最接近的父代,而不是$(docume
问题内容: 假设我有这种形式: 我目前正在使用此脚本提交表单,但这意味着需要刷新: 我想要做的是在 不 更改 页面的情况下 发送选择更改时的表单。我知道我必须使用AJAX来执行此操作,但是我无法确切地知道如何实现它。 您能指导我如何执行此操作吗? 谢谢你的帮助。 编辑: 考虑了评论之后,我得到了以下代码: HTML: JS: PHP的: 问题答案: 使跨浏览器事件和AJAX请求正常工作并非易事。我
问题内容: 我想通过jquery ajax提交此表单,这是我所做的,并且不起作用。即表格提交与页面刷新,我没有看到响应,即在同一页面上打印数组。 的HTML PHP(submit.php) 问题答案: 使用此方法-出现一些语法错误,必须提交事件
问题内容: 感谢balexandre和rtiq,我的工作流程已经全部解决。我的.ashx文件正在被调用,所以我知道部分代码正在运行,并且警告我错误。当我跟踪.NET时,通过context.Request[“ email”]和context.Request [“ optin”]引入的变量为NULL。 我知道有什么问题,但看不到。我重新编辑了这篇文章,以获取最新的代码。 HEAD中的jQuery HT