设为首页 收藏本站
查看: 1072|回复: 0

[经验分享] 表单数据的提交和处理——实例2

[复制链接]

尚未签到

发表于 2017-2-24 12:14:44 | 显示全部楼层 |阅读模式
  Nodjs中的表单数据的提交流程实际上非常的简单,总共有如下几步:
  1⃣️ 表单web界面



<form id="envForm" class='form-horizontal' data-toggle='validate'>
.........
下拉选择框
<div class="col-lg-7">
<select name="name_1" class="form-control input-sm" data-rule-required='true'>
<option value="testing">测试环境</option>
<option value="online">线上环境</option>
</select>
</div>
输入框
<div class="col-lg-7">
<input name="name_2" type="text" class="form-control input-sm" data-rule-required='true'/>
</div>
下拉选择框
<select name="name_3" class="form-control input-sm">
<option value="center">中心</option>
<option value="unit">单元</option>
<option value="yununit">云单元</option>
</select>
为了提交数据,可以将具有hide属性值得<input>标签放入<form>标签中
.........
</form>
  问题:有一个问题一定要明确,当我们不使用ajax提交数据的时候,提交表单时type=“submit”属性是一定需要的,
  因为这样编译器就已经封装了向服务器发送数据的方法,不再用我们自己编写提交数据的方法。当点击提交按钮之后,
  编译器自动将所有带有type="submit"属性的标签的 (name,value)提取出来,组成Json串发送到服务器,
  就像下面这样:



<html>
<body>
<form action="/example/html/form_action.asp" method="get">
<p>First name: <input type="text" name="fname" /></p>
<p>Last name: <input type="text" name="lname" /></p>
<input type="submit" value="Submit" />
</form>
<p>请单击确认按钮,输入会发送到服务器上名为 "form_action.asp" 的页面。</p>
</body>
</html>
  提交后当前页面跳转到form的action所指向的页面。然而,很多时候我们并不希望提交表单后页面跳转,那么,我们就可以使用ajax来提交数据
  我们要介绍的方法也正是使用ajax技术提交数据,好了接着说
  2⃣️  通过JQuery和Ajax技术向Nodejs服务器提交表单数据



$('页面中的某个按钮等标签').on('click',function(){
$.ajax({
type: "post",
url: '/config/scm/env/add',
data: $("#envForm").serialize(),
dataType: 'json',
success: function (data) {
if (data.errorMsg) {
$.alert("错误", data.errorMsg);
} else {
$('.edit-env-modal').modal('hide');
$.toast("保存环境成功,正在刷新...", "success", "center");
window.location.reload();
}
},
error: function (e) {
$.alert("失败", e);
},
complete: function (XMLHttpRequest, textStatus) {
$('.submitEnvModal').attr('disabled', false);
$('select[name="type"]').attr('disabled', false);
}
});
})
  注意其中的

type: "post",
url: '/config/scm/env/add',
data: $("#envForm").serialize(),
dataType: 'json',
指明了向服务器发送请求的类型,指明了NodeJs应该响应的路由url,以及要提交哪个表单数据,
serialize()方法会将指定的<form>表单中的<input>/<select>标签的name属性和属性值封
装成Json串,之后发送给Nodejs服务器
这个data非常的灵活,在这里我们处理的是表单,提交的是表单数据,但是更普遍的是,只要是
Json串数据就能进行传输,所以可以是一下这样:

type:"post",
url:'/config/scm/env/add'
data: {
   'title': title,
   'content': content
},
dataType:'json'

3⃣️ NodeJs的Router路由响应Post请求



router.post('/config/scm/env/add', configController.scmAddEnv);

4⃣️ NodeJs的controller中的相应的方法对提交的数据进行处理
(数据的处理和数据插入数据库中就不再解释,仅看NodeJs服务器如何从response参数据中获取提交的数据)



exports.scmAddEnv = function (req, res, next) {
var env = {};
env['name_1'] =  req.body.name_1;
env['name_2'] = req.body.name_2;
env['name_3'] = req.body.name_3;
...........进行数据的处理,通过写好的数据接口插入数据.........
}
   好了整个过程就结束了,是不是非常的简单,对就是这么简单

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-346653-1-1.html 上篇帖子: 关于NETCore发布到IIS 时遇到的一个问题 下篇帖子: vue.js开发环境搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表