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只返回字符串所以必须转化

  • 相关阅读:
    【Sqoop】介绍、安装、使用(列出MySQL中数据库/表 + mysql数据导入到Hive表 + Hive表数据导出到mysql表)
    【异常】MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on di
    【异常】Flume启动卡主异常:Agent configuration for 'a2' does not contain any valid channels. Marking it as invalid.
    【异常】转载 kafka.common.MessageSizeTooLargeException
    【异常】转载 ERROR KafkaProducer
    【异常】转载 如何优雅地关闭kafka
    【异常】转载 KAFKA生产者数据丢失问题的排查
    【异常】java.lang.ClassCastException: org.apache.spark.rdd.ShuffledRDD cannot be cast to org.apache.spark.streaming.kafka010.HasOffsetRanges
    mmap
    链表
  • 原文地址:https://www.cnblogs.com/kangkang1999/p/13287762.html
Copyright © 2011-2022 走看看