烧瓶不循环工作的确认模式
Confirmation modal for flask not working in a loop
我的程序列出了一组可以删除的用户。删除后,在删除用户之前会有一个确认模式。
代码的删除部分有效,但我对模态本身有问题,因为它是在删除用户函数中传递数据的那个。
我的 html 循环用户及其角色集。不要介意角色,因为我只关心确认模式。 :)
例如:
x 用户 1
x 用户 2
x user3(这是我要删除的用户)
当我删除 user3 时,它会删除 user1。结果是:
x 用户 2
x 用户 3
这是我的 HTML 的代码。模态已经包含在内。
<div class="col-md-10">
{% for u in all_users %}
<td>
<a href="#" data-toggle="modal" data-target="#confirm-delete"><img src = "{{url_for('static', filename='assets/images/x.png') }}"></a>
<!-- <a href="{{url_for('Users.delete_users', user=u.username)}}" " ><img src = "{{url_for('static', filename='assets/images/check.png') }}"></a> -->
{{u.username}}
</td>
{% for r in roles %}
<td><input type="checkbox" name="{{u.username}} {{r.name}}" value="{{r.name}}"
{% if r in u.load_roles(u.username) %}
checked
{% endif %}
/></td>
{% endfor %}
</tr>
{% for u in all_users %}
<div class="modal fade" id="confirm-delete" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">Confirm Selection</h4>
</div>
<div class="modal-body">
<p>Do you want to proceed?</p>
<p class="debug-url"></p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<a href="{{url_for('Users.delete_users', user=u.username)}}" class="btn btn-danger" name="button">Proceed</a>
</div>
</div>
</div>
</div>
{% endfor %}
{% endfor %}
<input class="btn btn-primary" button type="submit" name="button" value="Save Roles"></input><br>
</form>
</tbody>
</table>
有两个问题。第一个问题是您为每个用户创建每组模态。将其中一个 {% endfor %}
标记向上移动到第一个循环中的用户下。
其次,您为每个模态重复使用 id
属性。 id
s 必须是唯一的。你应该使用类似
<a href="#" data-toggle="modal" data-target="#confirm-delete-{{ u.id }}"><img src = "{{url_for('static', filename='assets/images/x.png') }}"></a>
在您的第一个用户循环中,然后
<div class="modal fade" id="confirm-delete{{ u.id }}" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
在第二个。
我的程序列出了一组可以删除的用户。删除后,在删除用户之前会有一个确认模式。
代码的删除部分有效,但我对模态本身有问题,因为它是在删除用户函数中传递数据的那个。
我的 html 循环用户及其角色集。不要介意角色,因为我只关心确认模式。 :)
例如:
x 用户 1
x 用户 2
x user3(这是我要删除的用户)
当我删除 user3 时,它会删除 user1。结果是:
x 用户 2
x 用户 3
这是我的 HTML 的代码。模态已经包含在内。
<div class="col-md-10">
{% for u in all_users %}
<td>
<a href="#" data-toggle="modal" data-target="#confirm-delete"><img src = "{{url_for('static', filename='assets/images/x.png') }}"></a>
<!-- <a href="{{url_for('Users.delete_users', user=u.username)}}" " ><img src = "{{url_for('static', filename='assets/images/check.png') }}"></a> -->
{{u.username}}
</td>
{% for r in roles %}
<td><input type="checkbox" name="{{u.username}} {{r.name}}" value="{{r.name}}"
{% if r in u.load_roles(u.username) %}
checked
{% endif %}
/></td>
{% endfor %}
</tr>
{% for u in all_users %}
<div class="modal fade" id="confirm-delete" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">Confirm Selection</h4>
</div>
<div class="modal-body">
<p>Do you want to proceed?</p>
<p class="debug-url"></p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<a href="{{url_for('Users.delete_users', user=u.username)}}" class="btn btn-danger" name="button">Proceed</a>
</div>
</div>
</div>
</div>
{% endfor %}
{% endfor %}
<input class="btn btn-primary" button type="submit" name="button" value="Save Roles"></input><br>
</form>
</tbody>
</table>
有两个问题。第一个问题是您为每个用户创建每组模态。将其中一个 {% endfor %}
标记向上移动到第一个循环中的用户下。
其次,您为每个模态重复使用 id
属性。 id
s 必须是唯一的。你应该使用类似
<a href="#" data-toggle="modal" data-target="#confirm-delete-{{ u.id }}"><img src = "{{url_for('static', filename='assets/images/x.png') }}"></a>
在您的第一个用户循环中,然后
<div class="modal fade" id="confirm-delete{{ u.id }}" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
在第二个。