zoukankan      html  css  js  c++  java
  • 弹窗修改数据 临时解决方法 + ajax

    一.重点

    1.Ajax 提交

    $('#ajax_submit').click(function () {
            $.ajax({
                url: "/app01/ajax/",
                type: "POST",
                data: {'id': $('#id_id').val(),'title': $('#title_id').val(),'account_id':$('#account_id').val()},
                success:function (data) {
                    //alert(data);//成功返回
                    if(data == "ok" ){
                        location.reload();
                    }else{
                        alert(data) //一般是显示
                    }
    
                }
            })
        })

    2.后台接口处理Post请求

    见下面源码

    3.html里面需要隐藏id,用来更新数据使用。

    <tr>
                      <!--隐藏一个标签放数据,提交表单使用-->
                    <td tname="title">{{obj.title}}<a tname="id" style="display: none">{{obj.id}}</a></td>
                    <td tname="account">{{ obj.account }}</td>
                    <td tname="operator"><a href="javacript:void(0)" onclick="test11(this)" class="edit1"><span class="glyphicon glyphicon-edit" data-toggle="modal" data-target=".bs-example-modal-lg" aria-hidden="true"></span></a></td>
                </tr>

    4.获取数据到模态对话框

    <td tname="operator"><a href="javacript:void(0)" onclick="test11(this)" class="edit1">
    
    
    
        function test11(obj) {
    
            var v = $(obj).parent().parent().find('[tname]');
            console.log(v);
            v.each(function () {
                var t_name = $(this).attr('tname'); //查出tname的值
                var t_value = $(this).text()  //查出text值
                var ide = "'#"+ t_name + "'"
                $('#popup').find('input[tname="' + t_name + '"]').val(t_value); //使用ID查找
                //$(ide).val(t_value);  //字符串拼接,通过对应的属性名 把值赋value
                })
        }

    二.源码

    python 的视图

    class Ajax(View):
        def post(self, request,**kwargs):
            """提交表单"""
            print(request,"00000000000000")
            id=request.POST.get("id")
            title=request.POST.get("title")
            account_id=request.POST.get("account_id")
            if title and len(title) > 3:
                print("id:",id,"title:",title,"account_id:",account_id)
                print("1111111111111")
                v=Article.objects.filter(id=id)
                print(v)
                v.update(title=title,account_id=account_id)
                return HttpResponse("ok")
            else:
                print("2222222222222")
                return HttpResponse("不能为空")
    

    python的url

        url(r'^ajax/$',views.Ajax.as_view(),name="Ajax"),
    

     

      

     HTML

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!-- Bootstrap -->
    <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
    </head>
    <body>
    <div>
    <h1>XXXX的傻猫</h1>
    </div>
    <div>

    <table class="table" border="1px">
    <thead>
    <tr>
    <th tname="title">IP地址</th>
    <th tname="account">端口</th>
    <th tname="operator">操作</th>
    </tr>
    </thead>
    <tbody>

    {%for obj in articles%}
    <tr>
    <!--隐藏一个标签放数据,提交表单使用-->
    <td tname="title">{{obj.title}}<a tname="id" style="display: none">{{obj.id}}</a></td>
    <td tname="account">{{ obj.account }}</td>
    <td tname="operator"><a href="javacript:void(0)" onclick="test11(this)" class="edit1"><span class="glyphicon glyphicon-edit" data-toggle="modal" data-target=".bs-example-modal-lg" aria-hidden="true"></span></a></td>
    </tr>
    {%endfor%}
    </tbody>
    </table>
    </div>
    <div id="popup" class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel">
    <div class="modal-dialog modal-lg" role="document">
    <div class="modal-content">
    <form method="POST" style="margin: 20px 20px;">
    {% csrf_token %}
    <div class="form-group" style="display: none"> <!--隐藏一个标签放数据,提交表单使用-->
    <label for="exampleInputEmail1">id</label>
    <input id="id_id" tname="id" type="text" class="form-control" placeholder="Text input">
    </div>
    <div class="form-group">
    <label for="exampleInputEmail1">文章名称</label>
    <input id="title_id" tname="title" type="text" class="form-control" placeholder="Text input">
    </div>
    <div class="form-group">
    <label for="exampleInputPassword1">作者</label>
    <select tname="account" id="account_id" class="form-control" >
    {% for op in account %}
    <option value="{{ op.id }}">{{ op.username }}</option>
    {% endfor %}
    </select>
    </div>
    <button id="ajax_submit" type="button" class="btn btn-default">确认</button>
    <button type="button" class="btn btn-default">取消</button>
    </form>
    </div>
    </div>
    </div>
    <!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
    <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
    <!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
    <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <script>
    function test11(obj) {

    var v = $(obj).parent().parent().find('[tname]');
    console.log(v);
    v.each(function () {
    var t_name = $(this).attr('tname'); //查出tname的值
    var t_value = $(this).text() //查出text值
    var ide = "'#"+ t_name + "'"
    $('#popup').find('input[tname="' + t_name + '"]').val(t_value); //使用ID查找
    //$(ide).val(t_value); //字符串拼接,通过对应的属性名 把值赋value
    })
    }
    $('#ajax_submit').click(function () {
    $.ajax({
    url: "/app01/ajax/",
    type: "POST",
    data: {'id': $('#id_id').val(),'title': $('#title_id').val(),'account_id':$('#account_id').val()},
    success:function (data) {
    //alert(data);//成功返回
    if(data == "ok" ){
    location.reload();
    }else{
    alert(data) //一般是显示
    }

    }
    })
    })
    </script>
    </body>
    </html>

      

  • 相关阅读:
    nginx配置ssl并结局TP3.2路由pathinfo
    TP3.2公共模板
    linux 上mysql慢日志查询
    RBAC流程
    Linux下安装Lnmp环境
    php操作redis命令大全
    Opencv无法调用cvCaptureFromCAM无法打开电脑自带摄像头
    c++考研复习之非递归前序中序后序遍历二叉树
    学习《Numpy基础知识》
    学习《Numpy快速教程
  • 原文地址:https://www.cnblogs.com/a10086/p/9404864.html
Copyright © 2011-2022 走看看