Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript RubyonRails+Ajax_Javascript_Ruby On Rails_Jquery - Fatal编程技术网

Javascript RubyonRails+Ajax

Javascript RubyonRails+Ajax,javascript,ruby-on-rails,jquery,Javascript,Ruby On Rails,Jquery,我正在尝试更新rails应用程序中的div。我只是在学习ROR。所以这对我来说是一个学习阶段。请找到代码。 在查看页面中 <%= javascript_tag do %> jQuery(function($) { $("#tabs4").click(function() { $.ajax( { url:'/spaces/showcal', type:'GET'

我正在尝试更新rails应用程序中的div。我只是在学习ROR。所以这对我来说是一个学习阶段。请找到代码。 在查看页面中

<%= javascript_tag do %>
     jQuery(function($) 
{

     $("#tabs4").click(function()
     {      
        $.ajax(
        {
        url:'/spaces/showcal',
        type:'GET'

        });
      });

});


<% end %>
我在这里做错了什么。。请帮忙 我还有一个partials页面_showcal,其中有一些文本要显示在该分区中。

您应该请求/spaces/showcal.js并对format.js做出反应

我从未使用过$.ajax,您可能需要在那里设置其他参数。在script.aculo.us中,类似这样的功能可以发挥作用:

new Ajax.Request('/tasks/#{task.id}.js',
    {asynchronous:true, evalScripts:true, method:'get'});
您应该请求/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" %>
在用ajax替换和使用内容时,我通常更喜欢像rails内置代码那样使用javascript。我不得不承认,正因为如此,我不确定你的更新操作是否基本正确。如果使用prototype helpers,page.replace_html应该可以工作。唯一的原因是,您正在执行一个ajax请求来实现它,结果体将包含该代码,并且它不会在当前dom上执行。所以我认为它可能正在执行,但因为它在一个单独的页面响应上,所以它没有做任何事情


试试我的建议,让我知道进展如何。很抱歉,我的回答有点模糊。

使用ajax时,调试此类问题的一个好方法是查看服务器返回的响应。如果它看起来不错,那么您知道您的javascript代码需要更改才能正常工作,如果它看起来不正确,那么首先修复服务器端代码

我会这样做:

def showcal
  render :layout => false
end


#showcal.html.erb
<%= render :partial => "spaces/showcal" %>
在用ajax替换和使用内容时,我通常更喜欢像rails内置代码那样使用javascript。我不得不承认,正因为如此,我不确定你的更新操作是否基本正确。如果使用prototype helpers,page.replace_html应该可以工作。唯一的原因是,您正在执行一个ajax请求来实现它,结果体将包含该代码,并且它不会在当前dom上执行。所以我认为它可能正在执行,但因为它在一个单独的页面响应上,所以它没有做任何事情


试试我的建议,让我知道进展如何。对不起,我的答案有点模糊。

无论如何。你能告诉我为什么我们要用respond|u来做| format | format.html format.js format.html和format.js是一种响应不同响应类型的方法。也许您希望根据预期的格式呈现或返回稍微不同的内容。如果您没有respond_to block,那么控制器操作将成为您正在进行的渲染方法调用,因为它每次只执行一步。你能告诉我为什么我们要用respond|u来做| format | format.html format.js format.html和format.js是一种响应不同响应类型的方法。也许您希望根据预期的格式呈现或返回稍微不同的内容。如果您没有respond_to block,那么控制器操作将成为您进行的渲染方法调用,因为它每次只执行一步。那么变量数据包含什么??它是否包含部分页面的文本\u showcal??我们不需要在控制器中使用respond|u to do | format |来检查返回的响应的格式吗??如果我错了,我很抱歉,因为我只是在学习ROR和Jquery+ajax。数据包含请求的响应。success函数传递该数据,作为jQuery默认设置的一部分。所以在这种情况下,它将包含部分。仅当您需要对该操作使用多种格式进行响应时,才需要该格式。否则它只响应一个,并将呈现基于html的视图。例如,对于scaffold控制器,在show操作中,您只需要一行@myobject=MyModel.findparams[:id]。格式。对于XML或JSON响应之类的事情很有用。我主要用于JSON,但当我提醒数据时,它返回了一个对象。在我的部分页面中,我只有两行文字。所以我猜如果我们试图提醒数据,这些文本应该会返回。另外$'tab4'。一旦用户单击该选项卡,htmldata应显示文本。但是它没有显示文本…您介意将部分代码添加到您的原始问题中,以便我可以看到它吗?您是否查看了使用firebug中的nettab的xhr请求的响应体?由于警报只是返回对象,请检查服务器返回给您的内容。那么变量数据包含哪些内容??它是否包含部分页面的文本\u showcal??我们不需要用response|u来做| fo吗
rmat |在控制器中检查返回响应的格式??如果我错了,我很抱歉,因为我只是在学习ROR和Jquery+ajax。数据包含请求的响应。success函数传递该数据,作为jQuery默认设置的一部分。所以在这种情况下,它将包含部分。仅当您需要对该操作使用多种格式进行响应时,才需要该格式。否则它只响应一个,并将呈现基于html的视图。例如,对于scaffold控制器,在show操作中,您只需要一行@myobject=MyModel.findparams[:id]。格式。对于XML或JSON响应之类的事情很有用。我主要用于JSON,但当我提醒数据时,它返回了一个对象。在我的部分页面中,我只有两行文字。所以我猜如果我们试图提醒数据,这些文本应该会返回。另外$'tab4'。一旦用户单击该选项卡,htmldata应显示文本。但是它没有显示文本…您介意将部分代码添加到您的原始问题中,以便我可以看到它吗?您是否查看了使用firebug中的nettab的xhr请求的响应体?由于警报只是返回对象,请检查服务器返回给您的内容。