Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.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 4中的modal向控制器发送数据_Javascript_Jquery_Ruby On Rails_Twitter Bootstrap_Twitter Bootstrap 3 - Fatal编程技术网

Javascript 通过rails 4中的modal向控制器发送数据

Javascript 通过rails 4中的modal向控制器发送数据,javascript,jquery,ruby-on-rails,twitter-bootstrap,twitter-bootstrap-3,Javascript,Jquery,Ruby On Rails,Twitter Bootstrap,Twitter Bootstrap 3,我是RoR的新手,我陷入这种情况有一段时间了。我正在使用一个引导模式,其中有一个表显示数据库中的用户,除此之外还有一个rage字段。需要向控制器发送用户id和范围值。 大概是这样的: {0 {user_id1 : range_value1}, 1 {user_id2 : range_value2}} 部分模态: <div class="modal-header"> <button type="button" class="close" data-dismiss="mod

我是RoR的新手,我陷入这种情况有一段时间了。我正在使用一个引导模式,其中有一个表显示数据库中的用户,除此之外还有一个rage字段。需要向控制器发送
用户id
和范围值。 大概是这样的:

{0 {user_id1 : range_value1}, 1 {user_id2 : range_value2}}
部分模态:

<div class="modal-header">
   <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
   <h3 id="modalLabel">Distribuir Estudos</h3>
</div>
<div class="modal-body">
  <table class="table table-bordered">
    <thead>
      <tr>
        <th>Integrante</th>
        <th>Papel</th>
        <th>Distribuição</th>
    </tr>
    </thead>
    <tbody>
      <% @users_protocols.each do |user_protocol| %>
        <tr>
          <td hidden><%= hidden_field :user_id, value: user_protocol.id %></td>
          <td><%= user_protocol.user.username %></td>
          <td><%= user_protocol.role.name %></td>
            <td>
              &nbsp;
              <span class="range-content">
                <input type="range" data-slider-min="0" data-slider-max="100" data-slider-step="1" data-slider-value="100"/>
                &nbsp;&nbsp;<span>100</span>
              </span>
              <span>%</span>
            </td>
          </tr>
      <% end %>
    </tbody>
  </table>
</div>
<div class="modal-footer">
  <button class="btn" data-dismiss="modal" aria-hidden="true">Fechar</button>
  <%= link_to distribute_protocol_path, method: :put, :remote => true, class: 'btn btn-primary', id: 'btnDistribute' do %>
      Distribuir
  <% end %>
</div>
控制器:

def distribute_studies
    @users_protocols = Protocol.find(params[:id]).users_protocols.includes(:user).each do |user_protocol|
      puts user_protocol.id
      puts user_protocol.role.name
      puts user_protocol.user.username
    end
    respond_to do |format|
      format.html { render :back }
      format.json { head :no_content }
      format.js   { render :layout => false }
    end
  end

  def distribute
    #DO SOMETHING WITH DATA HERE

    redirect_to :back
  end

想法是,创建一个rails表单,并在单击时形成
json
数据。或者使用jquery和
id
属性获取单个字段值,并相应地填充json。好的,我已经创建了
json
对象,在ajax调用中,我正在传递
数据
这个对象。但是我从控制器那里得到了两个答案,甚至使用
e.preventDefault()
。另外,我无法恢复controller中的
json
对象当您已经通过Jquery获取数据时,为什么要将remote true添加到link?只要把它去掉就可以了。你也可以添加一个按钮来代替。这是有意义的,而且很有效。但是,我无法恢复来自ajax的数据,不知怎的,它说的是
undefined=“”
,这取决于您从服务器返回到浏览器的内容。您是否创建了一个名为
distribute_studies.js.erb
的单独视图?其中列出了需要呈现的内容?还要检查您在服务器上收到的请求类型,如果其
json
js
的想法是,创建一个rails表单并在单击时形成
json
数据。或者使用jquery和
id
属性获取单个字段值,并相应地填充json。好的,我已经创建了
json
对象,在ajax调用中,我正在传递
数据
这个对象。但是我从控制器那里得到了两个答案,甚至使用
e.preventDefault()
。另外,我无法恢复controller中的
json
对象当您已经通过Jquery获取数据时,为什么要将remote true添加到link?只要把它去掉就可以了。你也可以添加一个按钮来代替。这是有意义的,而且很有效。但是,我无法恢复来自ajax的数据,不知怎的,它说的是
undefined=“”
,这取决于您从服务器返回到浏览器的内容。您是否创建了一个名为
distribute_studies.js.erb
的单独视图?其中列出了需要呈现的内容?如果服务器的
json
js
def distribute_studies
    @users_protocols = Protocol.find(params[:id]).users_protocols.includes(:user).each do |user_protocol|
      puts user_protocol.id
      puts user_protocol.role.name
      puts user_protocol.user.username
    end
    respond_to do |format|
      format.html { render :back }
      format.json { head :no_content }
      format.js   { render :layout => false }
    end
  end

  def distribute
    #DO SOMETHING WITH DATA HERE

    redirect_to :back
  end