2013-02-26 106 views
0

我有一個名爲index的文件,它顯示了客戶查詢列表。 我想在那個多重刪除。symfony2 multidelte記錄刪除

我的索引文件列表的代碼是在下面。

{% block body -%} 
<h1>Enquiry list</h1> 


<table class="records_list" id="rounded-corner"> 
    <thead> 
     <tr> 
    <th>Option</th> 
    <th>Id</th> 
      <th>Name</th> 
      <th>Email</th> 
      <th>Subject</th> 
      <th>Body</th> 
      <th>Actions</th> 
     </tr> 
    </thead> 
    <tbody> 
    {% for entity in entities %} 
     <tr> 
    <td><input type="checkbox" name="multiSelect" id="multiSelect[]" value="{{ entity.id }}"></td> 
      <td><a href="{{ path('enquiry_show', { 'id': entity.id }) }}">{{ entity.id }}</a></td> 
      <td>{{ entity.name }}</td> 
      <td>{{ entity.email }}</td> 
      <td>{{ entity.subject }}</td> 
      <td>{{ entity.body }}</td> 
      <td> 

        <a href="{{ path('enquiry_show', { 'id': entity.id }) }}" title="View"><img src="http://test//bundles/blogger/image/view.png" style="width:30px; height:30px"></a> 

        <a href="{{ path('enquiry_edit', { 'id': entity.id }) }}" title="Edit"> <img src="http://test//bundles/blogger/image/edit.png" style="width:30px; height:30px" > </a> 

      </td> 
     </tr> 
    {% endfor %} 
    </tbody> 
    <tfooter> 

    </tfooter> 
</table> 

    <ul> 
    <li> 
     <a href="{{ path('enquiry_new') }}"> 
      Create a new entry 
     </a> 
    </li> 
</ul> 
{% endblock %} 

我已將其中的複選框。 和我想要的是存儲所有id的「multiSelect []」的數組值。 我將這個傳遞給我的控制器。 我不知道如何傳遞這個數組值作爲我的控制器參數。所以請幫我 我想在這裏通過它。

<tfooter> 

     <a href="{{ path('enquiry_edit', " ") }}">MultiDelete</a> 

</tfooter>  

回答

0

我得到了答案。 我已經創建了表單並將請求傳遞給控制器​​deleteAction。

在deleteAction方法

我得到使用$請求參數請求 - >的get( 'MULTISELECT'); 「多選」輸入框的名稱。

並使用存儲庫類對象我已完成任務。

感謝您的回覆。

0

您需要爲此使用form。在沒有表單的情況下使用輸入字段始終是一種馬虎的方式。

+0

我有使用表單字段太把它給我,請求上下文的價值,但我不知道如何解析它。 – 2013-02-26 08:48:08

+0

這是什麼形式的。表單中的所有值都將發送到表單的action-URL。作爲POST或GET。您通過form標籤的action-attribute來決定這一點。請閱讀上面鏈接的symfony2中的表單文檔。這很簡單。 – 2013-02-26 08:54:53

0

我認爲最安全的方法是使用onclick生成表單並通過郵寄發送的鏈接。例如:

<a href="{{ path('your_delete_action', { 'id': object.id }) }}" 
    token="{{ token }}" 
    data-method="POST" 
    object-id ="{{ object.id }}"> 
    <span class="red"><i class="icon-remove"></i></span> 
</a> 

和的onClick這個鏈接,您生成表單,並將其發送給您的deleteAction

// Every link with an attribute data-method 
$("#container").on("click", "a[data-method]", function(event){ 
    event.preventDefault(); 

    var target = $(event.currentTarget); 
    var method = target.attr('data-method'); 
    var action = target.attr('href'); 
    var token = target.attr('token'); 
    var objectId = target.attr('object-id'); 

    // Create a form on click 
    var formulario = $('<form/>', { 
     style: 'display:none;', 
     method: method, 
     action: action 
    }); 

    formulario.appendTo(target); 

    formulario.append("<input name='token' value='" + token + "' type='hidden'/>"); 
    formulario.append("<input name='id' value='" + objectId + "' type='hidden'/>"); 

    // Do submit 
    formulario.submit(); 

});