Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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_Html Select - Fatal编程技术网

Javascript 使用ajax更新rails中的部分内容

Javascript 使用ajax更新rails中的部分内容,javascript,jquery,ruby-on-rails,ajax,html-select,Javascript,Jquery,Ruby On Rails,Ajax,Html Select,我目前正在尝试创建一个简单的下拉列表,其中包含姓名和电话号码,然后当您单击所选选项时,它会使用您使用Ajax输入的所选选项的子对象更新页面上的另一部分 i、 e.如果从下拉菜单中选择User1 | 555-555-5555,则应在第二部分中从User1返回所有报告批准的列表 我知道这是一个简单的问题,但我不太确定如何编写JavaScript使其工作 以下是我的下拉列表代码: 下拉视图: <select id="adminDropDown" onchange= "chooseManager(

我目前正在尝试创建一个简单的下拉列表,其中包含姓名和电话号码,然后当您单击所选选项时,它会使用您使用Ajax输入的所选选项的子对象更新页面上的另一部分

i、 e.如果从下拉菜单中选择
User1 | 555-555-5555
,则应在第二部分中从User1返回所有报告批准的列表

我知道这是一个简单的问题,但我不太确定如何编写JavaScript使其工作

以下是我的下拉列表代码:

下拉视图:

<select id="adminDropDown" onchange= "chooseManager();" class="form-control">
  <% if current_admin.manager_approvals.blank? %>
    <option>No Sub-Accounts added, Add one today!</option>
  <% elsif current_admin.manager_approvals.all? { |ma| ma.manager_approved == false }%>
    <option>No Sub-Accounts approved yet!</option>
  <% else %>
    <% current_admin.manager_approvals.where(manager_approved: true).each do |ma| %>
      <option value="<%= ma.id %>"><%= ma.manager_company %>&nbsp;|&nbsp;<%= number_to_phone(ma.manager_phone) %></option>
    <% end %>
  <% end %>
</select>
更新此js文件会导致此错误

 SyntaxError: [stdin]:6:5: unexpected (

如何选择下拉菜单选项之一并刷新第二部分?现在,所选值应将实例ID作为“@selected\u manager\u approval”传递给第二部分,然后自动仅刷新页面上的第二部分?我应该如何执行此操作?

在控制器中添加如下操作:

class Admins::ReportapprovalsController < ApplicationController

  def index
    @reportapprovals = Reportapproval.all(table:params[:table], per_table: 4)
  end

  def show
    @reportapproval = Reportapproval.find(params[:id])
  end

  def manager_select
    @selected_manager_approval = ManagerApproval.find(params[:manager_approval_id])       
  end
end
chooseManager = ->
  managerApprovalId = $(this).val()
  $.ajax
    type: 'POST'
    url: 'admins/reportapprovals/manager_select'
    data: manager_approval_id: managerApprovalId
  return

在控制器中添加如下操作:

class Admins::ReportapprovalsController < ApplicationController

  def index
    @reportapprovals = Reportapproval.all(table:params[:table], per_table: 4)
  end

  def show
    @reportapproval = Reportapproval.find(params[:id])
  end

  def manager_select
    @selected_manager_approval = ManagerApproval.find(params[:manager_approval_id])       
  end
end
chooseManager = ->
  managerApprovalId = $(this).val()
  $.ajax
    type: 'POST'
    url: 'admins/reportapprovals/manager_select'
    data: manager_approval_id: managerApprovalId
  return

您的意思是,在更改“adminDropDown”时,您希望“report\u list.html.erb”应使用Reportapproval记录刷新,其中manager\u id等于下拉列表的值?是的,这正是我正在尝试的。根据我所读的内容,我需要使用Ajax,因为它在选择下拉菜单后调用数据库。您的意思是在更改“adminDropDown”时,您希望“report\u list.html.erb”应使用Reportapproval记录刷新,其中manager\u id等于下拉菜单的值?是,这正是我想做的。根据我所读的内容,我需要使用Ajax,因为它在选择下拉菜单后调用数据库。我这样做了,但由于这是rails,我不断收到有关
SyntaxError:[stdin]:8:1:保留字“function”
的错误。读了一点之后,我需要coffeescript中的这个函数,我应该如何更改它?我已经更改了功能。请立即检查仍有问题,此manager_select.js.erb文件放入资产文件夹正确吗?不是视图?我得到了控制台中的错误
Uncaught ReferenceError:chooseManager未定义
,当我尝试从下拉菜单中选择时,我提到manager\u select.js.erb将位于app/views/admins/report\u approvals folderI中,但由于这是rails,我一直得到关于
SyntaxError:[标准文本]:8:1:保留字“function”
读了一点之后,我需要在coffeescript中使用此函数,我应该如何更改它?我已经更改了该函数。请现在检查仍有问题,此manager\u select.js.erb文件放在assets文件夹中正确吗?视图不正确?我收到错误
未捕获的引用错误:chooseManager未定义ned
在控制台中,当我尝试从下拉菜单中选择时,我提到manager_select.js.erb将位于app/views/admins/report_approvals文件夹中
// reportlist_wrapper_div_id is just an example you have to replace this with id of the div where you are rendering report_list partial.

$('#reportlist_wrapper_div_id').html('<%= escape_javascript render(:partial =>"report_list")%>');
chooseManager = ->
  managerApprovalId = $(this).val()
  $.ajax
    type: 'POST'
    url: 'admins/reportapprovals/manager_select'
    data: manager_approval_id: managerApprovalId
  return