ajax实现添加数据

前端部分

javascript 复制代码
function bindBtnAddEvent() {
     $("#btnAdd").click(function () {

          $(".error_msg").empty();

          $.ajax({
               url: '/task/add/',
               type: 'post',
               data: $('#formAdd').serialize(),
               dataType: "JSON",
               success: function (res) {
                    if (res.status) {
                            alert("添加成功");
                            location.reload();
                   } else {
                            console.log(res.error);
                            $.each(res.error, function (name, data) {
                                console.log(name);
                                $("#id_" + name).next().text(data[0]);
                           })
                       }
                    }
                })
          })
    }

点击后,发送ajax请求 。以post方式向/task/add/地址发送表单数据。

python 复制代码
@csrf_exempt
def task_add(request):
    #print(request.POST)
    #校验
    form=TaskModelForm(data=request.POST)
    if form.is_valid():
        form.save()
        data_dict={"status": True}
        return HttpResponse(json.dumps(data_dict))
    print(type(form.errors))
    data_dict={"status": False,'error':form.errors}
    return HttpResponse(json.dumps(data_dict))

TaskModelForm是自定义的类

后台接收到数据,以TaskModelForm类接收POST请求发送的数据。

如果数据有效,保存到数据库,并给前段返回HttpResponse(json.dumps(data_dict)),其中

data_dict={"status":True}

如果无效,data_dict={"status": False,'error':form.errors} 向前端发送 HttpResponse(json.dumps(data_dict))

javascript 复制代码
success: function (res) {
    if (res.status) {
        alert("添加成功");
        location.reload();
    } else {
        console.log(res.error);
        $.each(res.error, function (name, data) {
            console.log(name);
            $("#id_" + name).next().text(data[0]);
        })
    }
}

请求发送过后,获取响应。

如果res.status=True,添加成功 并且刷新页面

否则,

相关推荐
开开心心就好13 小时前
音频降噪剪辑工具,音量裁剪一键处理
运维·服务器·前端·spring·ocr·音视频·1024程序员节
PedroQue9915 小时前
0.8.2 新增 backFallback 配置,无 tabbar 页返回无忧
前端·uni-app
淡漠的蓝精灵15 小时前
web.py:一个简单到极致的 Python Web 框架
开发语言·前端·python·其他
开开心心就好16 小时前
竖式除法出题工具,整除余数混合模式
运维·服务器·前端·javascript·ocr·perl·1024程序员节
起个名字费劲死了16 小时前
Halcon学习一:骰子识别
前端·python·学习
大江东去浪淘尽千古风流人物16 小时前
【HexVIO】DSP卸载双目惯性VIO:Hexagon向量化前端与单帧融合调度深度解析
前端·状态模式·slam·dsp·vio·hexagon·移动端加速
其实防守也摸鱼16 小时前
Chrome 扩展安全攻防实录:从攻击面到防御实践
开发语言·前端·网络·chrome·安全·web安全·php
web打印社区16 小时前
Lodop排障总纲-常见报错一张表
开发语言·前端·javascript·chrome·websocket
李剑一16 小时前
为什么几乎所有的知名开源项目都是外国人写的?
前端·ai编程·deepseek
小郎君65816 小时前
(一)为什么表单需要第三种状态:disabled、readonly 与纯文本展示
前端·vue.js