[英]Passing data to bootstrap modal Django template
該視圖將元素列表(例如電影列表)傳遞到模板,並將它們呈現在表中。 每個元素都有其詳細信息,而一個特定元素則具有一個列表。 我想將這些清單的內容放入模態中。 我正在使用兩個如下的for循環進行此操作:
<table>
<thead>
<tr>
<td>title</td>
<td>description</td>
<td>hours</td>
</tr>
</thead>
<tbody>
{% for key in movies %}
<tr>
<td>{{ key.title }}</td>
<td>{{ key.description }}</td>
<td>
<!--This button calls my modal-->
{% for hour in key.hours %}
<li>{{ hour }}</li>
{% endfor %}
<button type="button" class="btn btn-default" data-toggle="modal" data-target="#myModal"></button>
</td>
</tr>
{% endfor %}
</tbody>
</table>
我的模式位於包裝表的div之外的表下。 我想將第二個for循環的值傳遞給我的模態。 當用戶單擊按鈕時,值將出現在模態內部。
我怎樣才能做到這一點?
你有兩個選擇
單擊按鈕時,可以使用Javascript更改模態的內容。
您可以為每個電影及其小時數創建一個模態,而不是一個模態。 根據您單擊哪個按鈕,將打開另一個模態。
正如@jastr所說的,有兩種解決方案。 其中之一正在做這樣的事情:
<ul>
包裹<li>
元素 open-modal
首先,對您的html進行一些更改:
<table>
<thead>
<tr>
<td>title</td>
<td>description</td>
<td>hours</td>
</tr>
</thead>
<tbody>
{% for key in movies %}
<tr>
<td>{{ key.title }}</td>
<td>{{ key.description }}</td>
<td>
<!-- You may want to put this whole list into your modal body -->
<ul>
{% for hour in key.hours %}
<li>{{ hour }}</li>
{% endfor %}
</ul>
<button type="button" class="btn btn-default open-modal" data-toggle="modal" data-target="#myModal"></button>
</td>
</tr>
{% endfor %}
</tbody>
</table>
然后,您可以添加這樣的點擊監聽器,以將列表插入到您的模式中:
<script type="text/javascript">
$('.open-modal').click(function (e) {
$('#myModal .modal-body').html($(this).prev().clone());
});
</script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.