ThinkPHP mvc新理解如何做数据的添加操作与验证
来源:互联网 发布:不可思议的妈妈 知乎 编辑:程序博客网 时间:2024/06/06 10:54
mvc 新理解
1:将要使用jquery 引入validate验证表单字段信息,将百度的editor引入作为文本的编辑器。
2:对表单的验证字段做验证,下面是使用validate的方法,首先确保正确的引入了文件,接着我们就可以通过以下方法来对表单进行验证了,例如我在html文件中要验证的字段为:
<div class="controls-group" style="width:90%;margin:auto"> <input class="span10" type="hidden" name="info[id]" value="{$info.id}" > <input class="span10" type="text" placeholder="文章标题" name="info[title]" value="{$info.title}" > </div>
那么我们自己定义的script里面就该这么写:
function checkText(){ return $("#addBbsform").validate({ /* 设置验证规则 */ rules : { "info[title]" : { required : true } }, /* 设置错误信息 */ messages : { "info[title]" : { required : '请输入标题' } } }); }
3:做完了表单的前端简单验证,接下来我们要做的就是对于表单提交过来的数据进行验证通过jquery进行异步提交数据做后台验证
$(function(){ $("#btnSubmit").click(function(){ if(!checkText().form()) return; // 后台提交 $( "#addBbsform").ajaxSubmit({ type: 'POST', url : $('#addBbsform').attr('action'), // data: $('#schoolAreaform').serialize(), dataType: 'JSON', success: function(data){ if(data=='ok'){ $('#divErrorMessage').show(); $('#notice_message').html("帖子信息保存成功!"); location.href="__URL__/schoolAreaList"; } }, error: function(data) { $('#divErrorMessage').show(); $('#notice_message').html("保存帖子信息失败!"); } }); }); });
4:将数据提交到了控制器中,那么接下来对数据进行处理。具体的处理为:
public function addBbs(){ $info = my_array_map('trim', I('info')); if ( !empty($info['title']) ) { $tiebaLogic = new TiebaLogic(); if ( $tiebaLogic->editTieba( $info ) === FALSE ) { $returnCode = 1; $returnData = $tiebaLogic->getError(); if ( is_array($returnData) ) { $returnData = "\r\n<p>* " . implode("</p>\r\n<p>* ", $returnData) . "</p>\r\n"; } else{ $returnData = "\r\n<p>* " . $returnData . "</p>\r\n"; } } else { $returnCode = 0; $returnData = 'ok'; } $this->ajaxReturn($returnData, $returnCode); } $this->display(); }
在这里我们对提交的数组信息进行处理,我们在前端将数据都放在了name = “info[]”这个数组中
<div class="controls-group" style="width:90%;margin:auto"> <input class="span10" type="text" placeholder="副标题" name="info[subhead]" value="{$active[0]['subhead']}" > </div><div class="controls-group" style="width:90%;margin:auto"> <input type="text" class="span10" placeholder="作者" name="info[writer]" name="title" value="{$active[0]['writer']}" ></div>
那么怎么拿到info[]呢?可以通过下面的这个方法获取到:
//获取infofunction my_array_map($callback, array $array) { $des = array_map($callback, $array); foreach ( $array as $k => $item ) { if ( gettype($item) == 'array' ) { $des[$k] = my_array_map($callback, $item); } } return $des;}
接下来在ModelNamelogic.class.php对数据进行处理为:
private $error = NULL; //获取错误信息 public function getError(){ $this->error(); } //一为修改二为添加操作 public function editTieba(array $info){ $tiebaModel = new TiebaModel(); if(!empty($info['id'])){ //如果存在ID则为修改 }else{ //不存在则为添加 if($tiebaModel->addTiebaInfo($info) === FALSE){ $this->error = $tiebaModel->getError(); return false; } } return true; }
这里具体的添加方式我们将其放在了ModelNameModel.class.php中
//添加public function addTiebaInfo($info){ $now = time(); $info['date'] = $now; $tiebaModel = new TiebaModel(); if($tiebaModel->create($info) === false){ //判断tp中两个添加操作是否正确? $this->error = $tiebaModel->getError(); return false; } if($tiebaModel->add($info) === false){ $this->error = $tiebaModel->getError(); return false; } return true; }
5:那么我们返回的提示信息以后就完成了数据的异步添加操作了。
if ( $tiebaLogic->editTieba( $info ) === FALSE ) { $returnCode = 1; $returnData = $tiebaLogic->getError(); if ( is_array($returnData) ) { $returnData = "\r\n<p>* " . implode("</p>\r\n<p>* ", $returnData) . "</p>\r\n"; } else{ $returnData = "\r\n<p>* " . $returnData . "</p>\r\n"; } } else { $returnCode = 0; $returnData = 'ok'; } $this->ajaxReturn($returnData, $returnCode);
0 0
- ThinkPHP mvc新理解如何做数据的添加操作与验证
- thinkphp dwz 的数据自动验证
- Thinkphp框架中使用数据对象自动处理添加数据库数据时,关于在数据库表中添加新列时出现新列的数据添加不上去?
- ThinkPHP框架六数据的添加
- thinkPHP的数据添加、修改、删除
- THINKPHP如何在添加数据的时候获取主键id的值
- thinkPHP的自动验证与自动填充
- 向MVC的Model中添加验证
- Thinkphp数据的修改及删除操作
- 如何添加新的字库
- 如何为.NET MVC添加Azure AD验证
- 爱上MVC系列~前端验证与后端数据有效性验证
- 使用POI操作EXECL做数据的导入与导出
- Web项目启动后,做数据预处理的操作(Spring MVC)
- ThinkPHP里的MVC
- thinkPHP的MVC框架
- spring-mvc的数据验证Validator
- MVC——ViewModel的数据验证
- ofbiz的.groovy中创建非静态类的对象
- DES加解密文件
- 插件VectorLine
- 如何从网页中调用本地exe应用程序(兼容各个浏览器)
- 动态sql
- ThinkPHP mvc新理解如何做数据的添加操作与验证
- iOS学习笔记第1天——C基础:常量、变量、注释
- 1567: [JSOI2008]Blue Mary的战役地图 二分+hash
- Android的虚线,虚线和实现并存
- OnHub不支持WEP和WPA
- beans.xml配置
- 1031
- 安装和配置CHImageGuard脚本
- iOS--错误集锦--'...' does not contain bit code. You must rebuild it with bit code enabled ...