多对多Ajax笔记

多对多表格的Ajax实现
老师和班级的关系使用如下表格记录:
id,class_id,teacher_id
现在需要将teacher,class和上述的关系表全部链接起来。
select teacher.id as tid,teacher.name,class.title from teacher 
left join teacher2class on teahcer.id=teacher2class.teacher_id
left join class on class.id=teacher2class.class_id

然后定义展示函数:
def teachers(request):
    teacher_list = sqlhelper.get_list("""
    上面的SQL语句
    """,[])

这样,每个老师会有多行数据。下面将列表进行改造,每个教师一行,班级名称包含多项。
result={}
for row in teacher_list:
    tid = row['tid']
    if tid in result:
        result[tid]['titles'].append(row['title'])
    else:
        result[tid] = {'tid':row['tid'],'name'=row['name'],'titles':row['title']}

取最后一个自增id,pymysql的lastrowid
request.POST.getlist('name'),取多选下拉框的值
多对多选择的时候,左右两个框之间来回移动。

request的使用方法:
request.GET.getlistqu取多个值
request.POST
request.method

return的使用方法:
return render()
return HttpResponse()
return redirect()

模板语言中可以使用的方法:
for
if
索引的使用方法.用点取值
{{}}单个值得取值方法
模板的渲染是在后台执行,然后发送给浏览器。

1、js序列化。
2、阻止默认事件发生的方法
(1)<a><onclick='return func();'></a>。此时,如果函数返回false,则阻止默认事件的发生;如果返回true,则按照原有默认顺序执行。
(2)<a id></a>

 

上一篇:js复习


下一篇:多对一处理