弹窗修改数据 临时解决方法 + 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>

  

原文地址:https://www.cnblogs.com/a10086/p/9404864.html