Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.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 Rails表单标签提交数据而不重新加载整个页面_Javascript_Ruby On Rails 4_Page Refresh - Fatal编程技术网

Javascript Rails表单标签提交数据而不重新加载整个页面

Javascript Rails表单标签提交数据而不重新加载整个页面,javascript,ruby-on-rails-4,page-refresh,Javascript,Ruby On Rails 4,Page Refresh,我有一个名为SearchforRenderingDatafromDatabase的模型,使用索引方法访问3个模型中的数据,并将其显示在索引页面上。 我在索引页本身中使用form_标记 <%= form_tag(search_path, :method => "get", :remote => true, id: "search-form") do %> <label for="Longitude ">Lon<

我有一个名为SearchforRenderingDatafromDatabase的模型,使用索引方法访问3个模型中的数据,并将其显示在索引页面上。 我在索引页本身中使用form_标记

            <%= form_tag(search_path, :method => "get", :remote => true, id: "search-form") do %>
            <label for="Longitude ">Lon</label>
              <%= text_field_tag :lng, params[:lng], :id => "longitude", placeholder: "Longitude" %>
            <label for="Latitude ">Lat</label>
              <%= text_field_tag :lat, params[:lat], :id => "latitude", placeholder: "Latitude" %>

              <button class="btn waves-effect waves-light" >Process</button>


        <% end %>
“get”,:remote=>true,id:“搜索表单”)do%>
朗
“经度”,占位符:“经度”%>
拉特
“纬度”,占位符:“纬度”%>
过程
我还没有为此创建任何局部视图

我在form_标记中添加了:remote=>true,我不知道在哪里以及如何调用ajax来实现这一点? 我正在搜索表中的数据,并使用“”获取更新的数据;在index.html.erb文件中


任何帮助都是值得的

由于表单的remote选项设置为true,请求将作为Ajax请求发布到控制器,以查找JavaScript。为了满足该请求,控制器的操作如下所示:

def MyController

  ...

  def my_action
    respond_to do |format|
      format.js { ... }
      format.html { ... }
    end
  end
  ...
format.js{…
允许控制器响应您的Ajax请求。因此您需要呈现
.js
.js.erb


看看这里,它会更具启发性:

您使用的是
:method=>“get”
,要发出get请求,页面将始终重新加载,请尝试删除该请求,并尝试查看它是否有效

此外,您的控制器需要能够响应JS调用,使您在控制器上调用的操作具有如下特性

respond_to do |f|
f.html { redirect_to tasks_url }
f.js

如果我删除:方法=>“get”,它会引发路由错误,因为没有get方法,它会考虑默认的POST。什么是tasks\u url?我已经将format.js添加到我的控制器索引操作、created.js、erb视图中,但在该视图中如何呈现索引操作?请看这里:,您需要使用一些javascript来呈现结果,而无需重新加载页面。