Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.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 如何使用Ajax更新Rails中的按钮_Javascript_Jquery_Ruby On Rails_Ajax - Fatal编程技术网

Javascript 如何使用Ajax更新Rails中的按钮

Javascript 如何使用Ajax更新Rails中的按钮,javascript,jquery,ruby-on-rails,ajax,Javascript,Jquery,Ruby On Rails,Ajax,这是我的困境,我是rails新手,遇到了一个我想使用AJAX的场景。我以前从未使用过AJAX,但需要学习它 因此,我创建了一个显示当前时间的简单网页。我想在页面上有一个按钮,当点击时,可以使用AJAX更新当前时间。我已经在视图中完成了所有的工作,我确信我在某个地方遗漏了一些东西,但不确定它是什么,就像我不知道在控制器中的什么地方我会放置额外的代码来完成这项工作一样。再说一遍,这只是一个非常简单的代码,我只是想用它来学习一个函数 这是我的密码: <h1>Time#index</h

这是我的困境,我是rails新手,遇到了一个我想使用AJAX的场景。我以前从未使用过AJAX,但需要学习它

因此,我创建了一个显示当前时间的简单网页。我想在页面上有一个按钮,当点击时,可以使用AJAX更新当前时间。我已经在视图中完成了所有的工作,我确信我在某个地方遗漏了一些东西,但不确定它是什么,就像我不知道在控制器中的什么地方我会放置额外的代码来完成这项工作一样。再说一遍,这只是一个非常简单的代码,我只是想用它来学习一个函数

这是我的密码:

<h1>Time#index</h1>

<div id="time">

The current time is <%= Time.now  %>

</div>

<br>

<br>




<%= form_tag("/search", method: "get") do %>

  <%= label_tag(:q, "Press button to update time:") %>

  <%= submit_tag("Update") %>

<% end %>

<p>Find me in app/views/time/index.html.erb</p>
Time#索引
当前时间是


在app/views/time/index.html.erb中查找我


你知道从这里到哪里才能真正有时间使用AJAX进行更新吗?我从搜索功能复制了表单标签,所以请不要注意名称,只注意功能。感谢您的帮助

假设您创建了一个Times控制器:

# app/controllers/times_controller.rb
class TimesController < ApplicationController
  def index
    @time = Time.now

    # edit: I forgot to add this before, I think this will solve it.
    respond_to do |format|
      format.html
      format.js
    end
  end
end
将您当前拥有的视图更改为此(仅使用链接而不是表单更简单):

这将更新时间

下面是一些进一步的阅读:


阿贾兴快乐

迭戈,非常感谢你的帮助和快速反应!!我真的很感激。迭戈,它有一个功能问题。当我点击链接时,它不会更新显示在“当前时间是”位置的时间,所以当我点击链接“更新时间”时,基本上我想要发生的是,时间实际上在我不遵循的区域之间更新,div之间的区域不是你要更新的地方吗?你能把它的样子和你想要的样子贴出来吗?迭戈,我明天才能给你发截图。我今天上班,没有带笔记本电脑。也就是说,代码就是你所拥有的,我逐字复制了它。问题是链接不会刷新页面。因此,当页面第一次出现时,它会显示当前时间。“当前时间是…”我想做的是,当单击“更新时间”链接时,我希望打开页面时第一次显示的时间更改为当前时间。现在,就页面而言,单击“更新时间”链接不会做任何事情。
# config/routes.rb
YourAppsName::Application.routes.draw do
  resources :times, only: :index
end
<h1>Time#index</h1>

<div id="time">
  The current time is <%= Time.now  %>
</div>
<br>
<br>

<%= link_to 'Update Time', times_path, remote: true %>

<p>Find me in app/views/time/index.html.erb</p>
# app/views/times/index.js.erb
$('#time').html("The current time is <%= @time %>");