【问题标题】:submitting various form values in rails form以 Rails 形式提交各种表单值
【发布时间】:2017-10-31 11:02:58
【问题描述】:

下面是表格的一部分。但是,在这种情况下,提交按钮是为每个 raw 绘制的,因此用户应该一个一个地单击。但是,我正在尝试通过一键提交来进行更改。

<tbody>
  <% sum= @movies.inject(0) {|sum,x| sum+x.ticket_count }
     cnt = 0 %>
  <% @movies.each_with_index do |movie, idx| %>
      <tr id="theater_<%= movie.id %>">
        <td><%= idx+1 %></td>
        <td><%= movie.title %></td>
        <% if @matchables[movie.title] != 0
           t = movie.title %>
          <td><img src="<%= @matchables[t].poster %>" width="100" /></td>
          <td><%= @matchables[t].title  %></td>
        <% else %>
          <td> </td>
          <td> </td>
          <td> </td>
        <% end %>
        <%= form_tag(save_movies_admin_theaters_path, method: 'get') do %>
            <%= hidden_field_tag :tid, movie.id %>
            <td><%= text_field_tag(:nid, (@matchables[movie.title] != 0 ? @matchables[movie.title].naver_id : ""), class: 'input-mini') %></td>
            <td><%= submit_tag('submit' , class: "btn btn-primary") %></td>
        <% end %>
        <td></td>
        <td></td>
      </tr>
  <% end %>
  </tbody>
</table>

所以我考虑使用

<input type='text' name='mid' class='movie' value=''/>

获取行的所有值,并通过带有js函数的ajax表单发送。但我真的不熟悉jsrails 所以如果有什么指南可以以这种格式发送多个值,请告诉我。

【问题讨论】:

    标签: javascript jquery ruby-on-rails ajax


    【解决方案1】:

    您可以在tbody 级别上制作表单标签。
    每部电影也要使用&lt;%= fields_for "movies[]", movie do |mv| %&gt;

    <tbody>
    <%= form_tag(save_movies_admin_theaters_path, method: 'get') do %>
      <% sum= @movies.inject(0) {|sum,x| sum+x.ticket_count }
         cnt = 0 %>
      <% @movies.each_with_index do |movie, idx| %>
        <%= fields_for "movies[]", idx do |mv| %>
           <tr id="theater_<%= movie.id %>">
            <td><%= idx+1 %></td>
            <td><%= movie.title %></td>
            <% if @matchables[movie.title] != 0
               t = movie.title %>
              <td><img src="<%= @matchables[t].poster %>" width="100" /></td>
              <td><%= @matchables[t].title  %></td>
            <% else %>
              <td> </td>
              <td> </td>
              <td> </td>
            <% end %>
            <%= mv.hidden_field :tid, movie.id %>
            <td><%= mv.text_field :nid, (@matchables[movie.title] != 0 ? @matchables[movie.title].naver_id : ""), class: 'input-mini') %></td>
           <td></td>
           <td></td>
          </tr>
        <% end %>
      <% end %>
      <tr><%= submit_tag('submit' , class: "btn btn-primary") %></tr>
    <% end %>
    </tbody>
    

    提交后,可以读取这种格式的params。

    params[:movies][idx]
    

    【讨论】:

    • 我无法像这样使用 params[:movies][0]。你有什么遗漏的吗?
    【解决方案2】:
    <%= form_tag(save_movies_admin_theaters_path, method: 'post') do %>
                <%= hidden_field_tag :tid, movie.id %>
                <td><%= text_field_tag(:nid, (@matchables[movie.title] != 0 ? @matchables[movie.title].naver_id : ""), class: 'input-mini') %></td>
                <td><%= submit_tag('submit' , class: "btn btn-primary") %></td>
            <% end %>
    

    写'post'而不是'get'。请你清楚你的确切问题是什么

    【讨论】:

    • 在这种情况下,我正在制作提交按钮的数量,但我想将其作为一个按钮提交。
    猜你喜欢
    • 2015-11-14
    • 1970-01-01
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-02
    • 2019-11-03
    • 2021-06-15
    相关资源
    最近更新 更多