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,添加成功 并且刷新页面

否则,

相关推荐
90后的晨仔2 小时前
从 H5 到 uni-app:一篇写给前端小白的"翻译指南"
前端·vue.js·前端框架
陈随易3 小时前
moon,apt和yum之外linux系统命令安装新选择
前端·后端·程序员
IT小盘3 小时前
13-企业Prompt模板-角色任务约束与输出格式
java·前端·prompt
徐小夕4 小时前
开源!我用SQLite + DuckDB打造了一款可视化AI问数平台
前端·算法·github
leslie1184 小时前
babel笔记
前端
用户059540174465 小时前
Redis 记忆存储踩坑实录:一个并发写入 Bug 让我排查了 4 小时
前端·css
小徐_23335 小时前
Wot UI 2.3.0 发布:二维码组件来了,Open Wot 与 wot-starter 同步更新
前端·微信小程序·uni-app
kyriewen6 小时前
Claude自己跑出去hack了3家公司——我为什么还在用它写代码
前端·ai编程·claude
IT_陈寒6 小时前
SpringBoot自动配置的坑,这次真踩疼我了
前端·人工智能·后端
子兮曰6 小时前
AI 浏览器 Agent 的安全困局:当自动化工具可以偷走你的登录态
前端·人工智能·后端