快速部署表单提交后台【leancloud】

前一段时间做了某公司官网外包,其实说是官网,就只有一个静态页面。所以轻松又愉快的就完成了开发,正当要上线之际,甲方突然提出了一个在他们看来一点都不过分的要求:

“能不能在我们官网加一个报名表格,有一个后台可以查看报名数据。”

LZ当时的内心的感觉是:甲方给了小笼包的预算,要做出小龙女的效果,于是我义正言辞的对他说

好的,明天就上线

简直是no zuo no die why you try 为何我这种不会拒绝别人的性格程序员可以一直做外包都没有饿死,自己都想不通。

如果项目本身是WordPress开发的话,可以用插件的方式做表单的提交存储和管理,否则就要自己用PHP来写一套接口存储数据,还要写后台管理页面。分分钟想甩甲方一脸要求加钱,不过后来还是忍住了,因为还好我有第三套方案:leancloud

不开刀,无痛苦,今天做完,明天就上线。

注册登录就略过不说了,登录到leancloud的后台,选择新建一个应用,你会得到一个这样的页面:

快速部署表单提交后台【leancloud】_第1张图片
leancloud后台

左边下划线开头的class都是系统提供的功能,比如用户管理,权限管理,文件管理一类的,我们这个case暂时用不上,就先不提了。

在项目页面引入leancloud的jssdk,我用的是bower的方式,非常的方便。也可以直接引入:

`

然后初始化应用:

AV.initialize(appid,appkey);

在设置页面可以找到appid和appkey


快速部署表单提交后台【leancloud】_第2张图片
appid和appkey

新建一个forms对象:

var Forms = AV.Object.extend("forms");
var formObject = new Forms();

不用在leancloud的后台实现添加forms类,系统会根据提交的数据,自动生成类和字段

在合适的事件下触发存储,以及回调事件:

formObject.save({
    name:name,
    phone:phone,
    email:email,
    cooperate:cooperate
}, {
    success: function(object) {
      alert("感谢您的提交,我们会尽快与您取得联系!");
    }
});
快速部署表单提交后台【leancloud】_第3张图片
保存数据

提交之后后台就能看到数据了。

为了不让甲方太过怀疑,我特地等了一天才告诉甲方已经开发好了这个功能。甲方表示非常满意,然后问我

可不可以在有人报名的时候邮件通知一下呢?

LZ内心再次一群草泥马呼啸而过,为什么又加了需求,又不给钱,这一次我义正言辞的说:

好的,麻烦再给我一天时间。

我人这么好为什么要做外包,应该去做慈善才对啊,幸好leancloud支持云代码功能

快速部署表单提交后台【leancloud】_第4张图片
创建云代码

我们创建一个函数,在forms被保存之后触发

快速部署表单提交后台【leancloud】_第5张图片
设置hook函数
query = new AV.Query('forms');
query.get(request.object.id, {
    success: function(post) {
        var data = {
            from: 'Mailgun Sandbox ',
            to: '[email protected]',
            subject: '官网留言信息',
            text:"姓名:"+post.attributes.name+"\nE-mail:"+post.attributes.email+"\n电话:"+post.attributes.phone+"\n留言:"+post.attributes.cooperate
        };

        mailgun.messages().send(data, function (error, body) {
            console.log(body);
        });
    },
    error: function(error) {
        throw 'Got an error ' + error.code + ' : ' + error.message;
    }
});`

用了一下mailgun的邮件服务,顺便提一下,qq邮件对mailgun非常的不友好,分分钟加入黑名单。

然后我又过了一天,告诉甲方通过我艰苦卓绝的努力,终于实现了这个高大上的功能,甲方表示非常开心,直夸我是多快好省的小能手

但是他没有加钱

===========正文完结的分割线===========


快速部署表单提交后台【leancloud】_第6张图片
抱一下八阿哥
快速部署表单提交后台【leancloud】_第7张图片
小番茄

如果贵司不是故意要用一个小番茄作为退出按钮的话,那么这就是一个BUG了!

这真是一个毫无意义的八阿哥┑( ̄Д  ̄)┍

你可能感兴趣的:(快速部署表单提交后台【leancloud】)