我設法使用Ajax調用發送字符串(測試)值,但我無法真正在我的視圖中使用我的控制器(flash通知或其他)顯示它:如何在Rails控制器中獲取Ajax值
Ajax調用使用JQuery
$(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',然後得到它沒有改變再回來? – Wahtever
如果你想看到控制器返回的值,你應該改變你的'成功'功能,以用新值更新你的HTML。你正在返回一個JSON對象,它不會修改html文檔本身 – rhernando
我基本上想要將該值傳遞給我的控制器。然後,在那個控制器中,我可以重新做一些工作(通過運行一個外部腳本來編寫文件,...) 我想發送給控制器的那個值最終將會是一個帶有多個下拉列表的連接的文本字段選擇。 如果你覺得我太過分了,並且因此使事情變得複雜,我很樂意發送給我。)=) – user2567674