【发布时间】:2021-09-14 03:40:19
【问题描述】:
在这个 wtform 中,我必须添加一组程序 ID、程序名称、程序描述。输入所有这些详细信息后,我必须单击计划按钮。单击后,表格将在页面底部创建。这些详细信息不存储在数据库中。它将被存储为一个列表。一旦我单击删除按钮,数据就必须从列表中删除,并且它也应该从表行中删除。所以我尝试了ajax并将数据传递给后端并从列表中删除了id并将其传递回前端。现在我尝试在 javascript 中创建一个表格,其中包含我在那里敲击的列表。有没有其他方法可以做到这一点?
<div>
<form method="POST", action="">
{{ form.csrf_token }}
<fieldset class="form-group">
<legend>Add Students</legend>
<div class="form-group">
{{form.program_id.label(class="col-sm-1 col-form-label")}}
{{form.program_id(id="program_id")}}
</div>
<div class="form-group">
{{form.program_name.label(class="col-sm-1 col-form-label")}}
{{form.program_name(id="program_name")}}
</div>
<div class="form-group">
{{form.program_description.label(class="col-sm-1 col-form-label")}}
{{form.program_description(id="program_description")}}
</div>
<div class="form-group" align ="justify">
{{form.cancel(class="btn btn-outline-info")}}
{{form.schedule(class="btn btn-outline-info")}}
</div>
<table class="table table" border =1 >
<tr >
<th>ID</th>
<th>program_id</th>
<th>program_title</th>
<th>program_description</th>
</tr>
{% for program in all_programs %}
<tr>
<td> {{program.program_id}}</td>
<td> {{program.program_title}}</td>
<td> {{program.program_description}}</td>
<td>
<input type="button" value="Remove" class="btn btn-danger" onclick="removeProgram(this)" data-program-id="{{program.program_id}}" data-program-list="{{program_list}}">
</td>
</tr>
{% endfor %}
</table>
</form>
<script>
function removeProgram(deleteaction){
programId = deleteaction.getAttribute('data-program-id');
programList = deleteaction.getAttribute('data-program-list');
console.log("we are here", articleId,articleList)
$.ajax({
type:'POST',
url:'/removeaprogram',
data:{
'programid':programId,
'programlist':programList
},
success: function (data) {
console.log(data) // display the returned data in the console.
let optionTable = '<table class="table table" border =1 ><tr ><th>ID</th><th>program_id</th><th>program_title</th><th>program_description</th></tr>';
for(each_data in data){
optionTable = "'<tr><td>'+{{each_data.program_id}}+'</td>''<td>'+{{each_data.program_title}}+'</td>'"
}
})
}
</script>
</div>
【问题讨论】:
-
你需要在循环中连接 optionTable,你正在覆盖它。准备好 HTML 字符串后,您可以将其推送到任何 html 元素。
-
如果这与服务器无关,请在minimal reproducible example 中发布 RENDERED HTML。点击edit,然后点击
[<>]sn-p编辑器