2015-08-31 52 views
2

我在Symfony項目中遇到了模態問題。目前,我有一張表中的成員名單。對於每一行,都有一個用於操作的按鈕:查看,編輯和刪除。我在我的樹枝視圖中執行此操作:用Symfony打開一個帶有動態值的模態

<a href="{{ path('member_edit', {'id': member.id})}}" class="btn btn-default"> 
              <i class="glyphicon glyphicon-info-sign"></i> 
             </a> 

正如您所看到的,該鏈接是動態的,並帶有該recod的ID。現在,我想打開選擇操作的模式。在我的例子中,我需要去/像/成員/編輯/ IdOfUser

我如何可以加載此視圖模態?我是否需要爲此創建表單模板?我想我需要使用ajax來加載動態視圖。

+0

據我記得,通過模板做它只是鼓勵做的方式。指定'href'並依靠'ajax'請求返回'html',然後將其注入模態中,這在很久以前就被推薦了......但現在不再了。此外,通過'href'做它有一些討厭的錯誤,當涉及到加載第一個模式,然後用另一個'href'重新加載... –

回答

6

我建議使用自舉3的模式時,你可以使用屬性數據-XXX(爲例此數據等等)

HTML

<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal" data-whatever="{{ member.id }}"> 
    <i class="glyphicon glyphicon-info-sign"></i> 
</button> 

<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"> 
    <div class="modal-dialog" role="document"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> 
       <h4 class="modal-title" id="exampleModalLabel">Demo</h4> 
      </div> 
      <div class="modal-body"> 
       Body modal 
       <input type="text" name="id" class="modal-body input"/> 
      </div> 
      <div class="modal-footer"> 
       <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
      </div> 
     </div> 
    </div> 
</div> 

的Javascript

$('#exampleModal').on('show.bs.modal', function (event) { 
    var button = $(event.relatedTarget) // Button that triggered the modal 
    var id= button.data('whatever') // Extract info from data-* attributes 
    // If necessary, you could initiate an AJAX request here (and then do the updating in a callback). 
    // Update the modal's content. We'll use jQuery here, but you could use a data binding library or other methods instead. 
    var modal = $(this) 
    modal.find('.modal-title').text('The ID is: ' + id) 
    modal.find('.modal-body input').val(id) 
})