cczhy

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
传递信息的方法,除了添加隐藏属性的信息之外,还可以添加自定义属性。可以在{% for %}循环中这样定义:
<td clsid=" {{row.clsid}} "> {{row.title}}</td>
这样就传递了一个自定义属性:clsid,可以以此来标识这条记录。
<a class="btn-edit">对话框编辑班级信息</a>
<script>
$('.btn-edit').click(function()){
    $(#shadow,#editModal).removeClass('hide');
    //获取当前标签,并且找到父标签。a标签只定义了一个class,这时$(this)就是当前标签
    var tds = $(this).parent().prevAll();
    var studentId = $(tds[2]).text();//从当前标签向前数,从0开始,是第2个td的信息,所以是tds[2]
    var studentName = $(tds[1]).text();
    var classId = $(tds[0]).attr('clsid');//本次获取标签的clsid属性的值,不是获取文本
    
    $(#editId).val(studentId);
    $(#editName).val(studentName);
    $(#editClassId).val(classId);
}

$('#btnEdit').click(function(){
//更新学生信息,点击后需要发送Ajax请求。先拿到值
$.ajax({
url:'/modal_edit_student/',  //注意这里需要在URL中定义的地址
type:'POST',
data:{'nid':$('#edtiId').val(),'name':$('#edtiName').val(),'class_id':$('#edtiClassId').val()}
dataType:'JSON',  //这样就不用JSON.parse(arg)
success:function(arg){
    //这里省略JSON.parse(arg),因为有dataType定义
    if(arg.status){
    location.reload()
    }else{
    $('#editError').text=arg.message;
    }
}
})
})
</script>
然后,编辑框可以这样设置:
<div id="editModal" class="add-modal hide">
<h3>编辑学生信息</h3>
姓名:<input id="editName" type="text" name="name" placeholder="姓名" />
<input type="text" id="editId" style="display:none" />备注:注意这里是把editId隐藏保存在这里
......
班级:
<select id="editClassId" name="classId">
    {% for row in class_list %}
    
<input id="btnEdit" type="button" value="更新" />
<span id="editError" style="color:red;"></span>

最终实现modal_edit_student函数,这个函数对应Ajax定义中对应的URL地址。
def modal_edit_student():
    ret = {'status':True,'message':None}
    try:
        nid = request.POST.get('nid')
        class_id = request.POST.get('class_id')
        name = request.POST.get('name')
        sqlhelper.modify("update student set name=%s,class_id=%s where id=%s",[name,class_id,nid,])
    except Exception as e:
        ret['status']=False
        ret['message']=str(e)
    return HttpResponse(json.dumps(ret))

 

posted on 2020-09-08 12:04  cczhy  阅读(261)  评论(0)    收藏  举报