[英]Ruby on Rails + Ajax
我正在尝试在Rails应用程序中更新div。 我只是在学习ROR。 所以对我来说这是一个学习阶段。请找到代码。 在查看页面中...
<%= javascript_tag do %>
jQuery(function($)
{
$("#tabs4").click(function()
{
$.ajax(
{
url:'/spaces/showcal',
type:'GET'
});
});
});
<% end %>
在空间控制器..
def showcal
respond_to do |format|
format.html
{
render (:update) { |page|
page.replace_html 'tab4', :partial => 'spaces/showcal'
}}
end
end
我在这里做错了..请帮助我也有一个局部页面(_showcal),其中有一些文本要显示到该div中。
您应要求/spaces/showcal.js
和反应format.js
。
我从未使用过$.ajax
,您可能需要在那里设置其他参数。 使用script.aculo.us,可以执行以下操作:
new Ajax.Request('/tasks/#{task.id}.js',
{asynchronous:true, evalScripts:true, method:'get'});
使用ajax时,调试这种情况的一种好方法是查看服务器返回的响应。 如果看起来不错,那么您就知道需要更改JavaScript代码才能使其正常工作,如果看起来不对,请首先修复服务器端代码。
这是我的方法:
def showcal
render :layout => false
end
#showcal.html.erb
<%= render :partial => "spaces/showcal" %>
您的js区块:
jQuery(function($)
{
$("#tabs4").click(function()
{
$.ajax({
url:'/spaces/showcal',
type:'GET',
success: function(data)
{
$('#tab4').html(data);
}
});
});
});
当涉及到用ajax替换和使用内容时,我通常更喜欢使用javascript来构建内置代码。 因此,我不得不承认,我不确定您的更新操作是否大部分正确。 如果您正在使用原型帮助器,则page.replace_html应该可以使用。 唯一的原因是因为您正在执行ajax请求以实现该请求,并且生成的主体将包含该代码,并且不会在您当前的dom上执行。 所以我认为这可能正在执行,但是因为它在单独的页面响应中,所以它什么也没做。
尝试一下我的建议,让我知道如何进行。 对不起,我的回答有点朦胧。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.