zoukankan      html  css  js  c++  java
  • Django学习日记-04Ajax单表操作编辑部分和js阻止

    JS阻止默认事件发生

        -是指在HTML当一个a标签同时存在href超链接和onclick事件函数,点击a标签默认优先执行事件函数,然后再执行href超链接

        -如果不想要执行herf超链接则在onclick中加入return  后在事件函数中添加 return false

     <a href="http://www.baidu.com" onclick="return showmodal()"> 对话框添加</a> {# 包含事件 #}
    funtion showmodal(){
         xxxx
         return false }

    单表编辑 

        1,参考新url的方式 先解决原本数据的填充

          可以在showmodal函数中查找 通过当前标签向上推出数据

                       a标记当前位置

    <a onclick="showmodal2(this)">编辑添框加</a>

            b找到当前位置

                var row= $(ths).parent().prevAll(); //找到目标位置   var差不多声明

            c打印目标内容

             var content = $(row[0]).text();      // 打印出目标内容
                console.log(content);            //console打印

            d填入对应标签

         $('#edit_title').val(content);       //内容填入

         2,在url.py中写入对应的url 

        3 ,在views中写入编辑函数

          -依旧用HttpResponse返回    可以采用一个对象字典 返回信息

          -对象字典的作用是可以更加直观  try except 正常发送 如果失败 发送 False 和 error/

          -json。dumps的作业是将字典转化为字符串

    def modal_edit_class(request):
        ret = {'status':True ,'message':None}
        try:
            id = request.POST.get('id')
            title = request.POST.get('title')
            sqlhelp.get_commit('update class set title=%s where id=%s', [title, id, ])
        except Exception as e:
            ret['status'] = False
            ret['message'] = "eroor"
        import json
        return HttpResponse(json.dumps(ret))

        4,在html写Ajax

          -填入客户端输入的数据/声明

     ·      var id =$('#edit_id').val();
                var title = $('#edit_title').val();
                console.log(id,title);//打印

           -三步走 url ,type,data

     $.ajax({
                    url:'/modal_edit_class/',
                    type:'POST',
                    data:{'id':id,'title':title},
                    success:function (arg) {
                        console.log(arg);   //打印返回结果参数arg arg是字符串类型
                        {#JSON.parse(字符串)  //把字符串转化为字典对象#}
                        {#JSON.stringify(对象) //把字典对象转化为字符串#}
                        arg =JSON.parse(arg);
                        if (arg.status){
                            location.reload();//相当于location.href='/class/' 当前页面刷新
    
                        }else{
                            alert(arg.message)
                        }

    总结:-对于单表编辑部分应该注意数据库本身的数据显示,用(this)定位找出标签位置 ,为防止出现BUG可以多次的用console.lolg(xxx)进行测试,在我个人的理解中var xx=$(xx).xxx差不多是声明一个常量  $('#xx') 是声明一个标签 .val()是填入数据

     -在views函数中可以用对象字典是形式试错 try except注意字典和字符串之间的转化,因为httpresponse只返回字符串所以必须转化

  • 相关阅读:
    在C++里while语句的一个妙用
    看书——我和村上作品
    Linux下使用QQ和查看QQ空间
    Redflag 6.0 Linux下装 nvidia fx5200显卡驱动
    唇伤
    看书——我和村上作品
    Firefox 3 查看QQ空间的问题——只能开8位以下QQ的空间
    codeforces 315 B.Sereja and Array
    codeforces 285C Building Permutation
    省赛总结
  • 原文地址:https://www.cnblogs.com/kangkang1999/p/13287762.html
Copyright © 2011-2022 走看看