【发布时间】:2014-02-18 18:48:49
【问题描述】:
我设法使用 Ajax 调用发送了一个字符串(测试)值,但我无法使用我的控制器(闪光通知或其他)在我的视图中真正显示它:
使用 JQuery 的 Ajax 调用
$(document).ready(function() {
$("#completed").live('click', function() {
alert (document.getElementById('query').value);
});
$.ajax
({
url: '.',
data: {
chosenformat : "myvalue",
},
type: 'post',
success: function()
{
alert ('success');
}
});
});
我想在我的控制器中获取 'chosenformat' 值:
format = params[:chosenformat]
flash[:format] = "chosen format: " + params[:chosenformat].to_s()
if !(format.nil?)
respond_to do |format|
format.html # contact.html.erb
format.json {
render :response => {:format => format}
}
end
end
问题是我确实收到了“成功”消息,所以显然没有路由问题,但我看不到视图中显示的变量:
<%- flash.each do |key, msg| -%>
<div id="<%= key %>">
<p>flash <%= msg %></p>
<%- end -%>
非常感谢您的帮助:)
【问题讨论】:
-
你为什么要发送
chosenFormat,然后又不加改动地把它拿回来? -
如果您想查看控制器返回的值,您应该更改您的“成功”函数以使用新值更新您的 HTML。您正在返回一个 JSON 对象,它不会修改 html 文档本身
-
我基本上想将该值传递给我的控制器。然后,在该控制器中,我可以重新做一些工作(通过运行外部脚本来编写文件,...)我想发送给控制器的值最终将是一个文本字段,其中包含多个下拉选择的串联.如果您认为我太过分了(因此使事情复杂化......),我很乐意给我发送 Skype
标签: jquery ruby-on-rails ajax ruby-on-rails-3