簡體   English   中英

Rails:以表單形式向控制器提交html表內容

[英]Rails: Submit html table content in form to controller

我在使用Rails配方器時遇到了一些麻煩。

我有一個創建“項目”的表格。

項目形式

<%= bootstrap_form_for(@project) do |f| %>
...
<div class="container-fluid">   
    <%= f.static_control label:"Vordefinierte Aufgaben" do %>

    <div class="actions form-group nopadding">
      <div class="center-block">
        <%=link_to "", data: {toggle:"modal", target:".newTask-modal"} , class: "btn btn-success center-block btn-sidebar-ok", id: "singlebutton"  do%>
          <i> <span class="glyphicon glyphicon-plus pull-left btn-sidebar-icon"></span>Neue Aufgabe hinzufügen </i>
        <% end %>
      </div>
    </div>  

    <div class="task-table">
        <%=render 'tasks/table'%>
    </div>

<% end %>
</div> 
...
<!-- task Modal to create a new task -->    
   <%=render 'tasks/newTaskModal' %>
<% end %>


  <!-- Button -->
              <div class="actions form-group">
                <div class="center-block">
                  <%= button_tag( type: 'submit',  class: "btn btn-success center-block btn-sidebar-ok", id: "singlebutton")  do%>
                    <i> <span class="glyphicon glyphicon-ok pull-left"></span>Projekt anlegen </i>
                  <% end %>
                </div>
              </div>

在此表單中,有一個表,顯示已創建的任務,以及一個用於打開引導程序模式的按鈕。 該模式包含一個新表格來創建任務。

模態中的任務表

 <%= bootstrap_form_tag() do |f| %>

        <div class="col-sm-8"> 
            <%= f.text_field :task_title, label: "Titel", placeholder: "Betreff", icon: "pencil",wrapper: { class: 'icon-addon addon-md'} %>
        </div>
        <div class="col-sm-4"> 
            <%= f.number_field :task_in_min, label: "Arbeitszeit in Min", placeholder: "Bsp.: 25", icon: "time",  wrapper: { class: 'icon-addon addon-md'}%>            
        </div>

        <div class="col-sm-12"> 
            <%= f.text_area :task_description, label: "Beschreibung*", placeholder: "Aufgabenbeschreibung", icon: "pencil", rows: 10, wrapper: { class: 'icon-addon addon-md'}%>
        </div>


            <%= button_tag( type: 'button',  id:"taskSubmit", class: "btn btn-success center-block btn-sidebar-ok")  do %>
                <i > <span class="glyphicon glyphicon-ok pull-left btn-sidebar-icon"></span> Speichern  </i>
            <% end %>


 <% end %> 

如果我單擊“ taskSubmit”,則一個javascript將該任務(標題,描述,最小值)放入項目表單內的表格中。 JS用任務內容創建一個新的表行。

Java腳本

//take data from task form and at a new task element to the task table in project form
$(function TaskSubmitFunction(){
$('#taskSubmit').click(function(){

    var task_title = $('#task_title').val();
    var task_description = $('#task_description').val();
    var task_in_min = $('#task_in_min').val();
    //Remove spaces from title
    var id = task_title.replace(/ /g,'');

    $('#taskTable tr:last').after('<tr id="task_'+id+'"> <td>'+task_title+'</td> <td>'+task_description+'</td><td>'+task_in_min+'</td><td> <span class="pull-right"><span data-toggle="tooltip" data-placement="right" data-original-title="Löschen"><button class="btn btn-sm btn-danger btn-colored delete-position" id="'+id+'"name="button" type="button" task="'+task_title+'"><i><span class="glyphicon glyphicon-remove"/></i></button></span></span></td></tr>');

    $('#taskTable').after('<input type="hidden" id="1" name="1" value="'+task_title+'" />');

    $('#task_title').val('');
    $('#task_description').val('');
    $('#task_in_min').val('');


    //initialize task delete
    $(function TaskDeleteFunction(){
        $('#'+id).click(function(){

            var task_title = $(this).attr('task');

            if (confirm("Soll die Aufgabe wirklich gelöscht werden?")) {
                $('#'+id).remove();
            }
            return false;
        });
    });


});
});

我現在要做的是將這些表元素提交給項目控制器,以創建項目和所有必要的任務activeRecords。 這可能嗎? 我怎樣才能做到這一點? 也許為每個要提交到項目表單的表格元素創建一個隱藏字段? 但是每個表格元素都包含三個值...我該怎么做?

你有什么主意嗎?

最好的祝福

為什么不只使用三個隱藏字段(每個值一個)? 直截了當,它們將很容易在params哈希中訪問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM