各位大佬,求救啊

kenny.feng 2020-02-22 10:45:02
需求:ajax局部刷新表格数据
所用:python flask+jq ajax+分页
问题:前台成功接收到后台传的json数据,但不知道怎么实现“替换表格原有的数据,而且保持原来分页的状态(20条/页)”
teacher.html:

$(function b() {
$.ajax({
url: "http://127.0.0.1:5000/teacher_info/delete_many/",
type: "POST",
data: k,
dataType:"json",
success: function (resp) {
if (resp) {
... // 这里就不知道怎么写了(原本想拼接出新表格str, 再用$("#table").html(str);替换原表格,但发现由于还有分页功能,替换后所有记录都只在第一页,而且表格样式有所改变

demo.py:

# 删除
@app.route('/teacher_info/delete_many/',methods=['GET','POST'])
def delete_many_teacher():
result = request.form.get('data', '')
for i in json.loads(result):
id = int(i)
teacher = Teacher_info.query.filter(Teacher_info.id == id).first()
db.session.delete(teacher)
db.session.commit()
item = []
teachers = Teacher_info.query.all()
for teacher in teachers:
obj = teacher.to_json() # 调用了该类的自定义方法(将实例对象转化为json)
item.append(obj)
return json.dumps(item) # item是 [ {},{},...{} ]。如[{'id':1,'name': '张三', 'age':18}, {'id':2,'name': '李四', 'age': 21,...]

# 分页:
@app.route('/teacher_info/',methods=['GET','POST'])
def teacher_info(page=None):
paginate = Teacher_info.query.order_by(Teacher_info.id).paginate(page=page, per_page=20, error_out=False)
teachers = paginate.items
return render_template('teacher_info.html', paginate=paginate, teachers=teachers)

teacher.html:

{% for teacher in teachers %}
<tr >
<td height="20" bgcolor="#FFFFFF"><div align="center"><input type="checkbox" name="checkbox2" value="checkbox"/></div></td> // 选择方框
<td height="20" bgcolor="#FFFFFF"><div align="center" class="STYLE1"><div id="id" align="center">{{ teacher.id }}</div></div></td> // id列
<td height="20" bgcolor="#FFFFFF"><div id="username" align="center"><span class="STYLE1">{{ teacher.name }}</span></div></td> // name列
<td height="20" bgcolor="#FFFFFF"><div id="username" align="center"><span class="STYLE1">{{ teacher.age}}</span></div></td> // age列
</tr>
{% endfor %}
...全文
26 回复 点赞 打赏 收藏 举报
写回复
回复
切换为时间正序
请发表友善的回复…
发表回复
相关推荐
发帖
Ajax
加入

5.2w+

社区成员

Web 开发 Ajax
申请成为版主
帖子事件
创建了帖子
2020-02-22 10:45
社区公告
暂无公告