我们照老,在控制器里面先查出我们所需要用到的数据:

然后直接遍历到模版上即可:

然后再开始写提交过来的数据处理问题(注意一定要接收修改页面通过隐藏域)而且我们刚才已经写好我们的model层了,所以直接用大D即可实现:

  1. <!doctype html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>后台管理</title>
  6. <link rel="stylesheet" type="text/css" href="__PUBLIC__/Admin/css/common.css"/>
  7. <link rel="stylesheet" type="text/css" href="__PUBLIC__/Admin/css/main.css"/>
  8. <script type="text/javascript" src="__PUBLIC__/Admin/js/libs/modernizr.min.js"></script>
  9. <script type="text/javascript" src="__PUBLIC__/Admin/js/jq18m.js"></script>
  10. <script type="text/javascript" src="__PUBLIC__/Admin/js/hileft.js"></script>
  11.  
  12. <script type="text/javascript" charset="utf-8" src="__PUBLIC__/Ueditor/ueditor.config.js"></script>
  13.  
  14. <script type="text/javascript" charset="utf-8" src="__PUBLIC__/Ueditor/ueditor.all.min.js"></script>
  15. <script type="text/javascript" charset="utf-8" src="__PUBLIC__/Ueditor/lang/zh-cn/zh-cn.js"></script>
  16.  
  17. </head>
  18. <body>
  19.  
  20. <include file="Public/header" />
  21.  
  22. <div class="container clearfix">
  23. <include file="Public/left" />
  24. <!--/sidebar-->
  25. <div class="main-wrap">
  26.  
  27. <div class="crumb-wrap">
  28. <div class="crumb-list"><i class="icon-font"></i><a href="/jscss/admin/design/">首页</a><span class="crumb-step">&gt;</span><a class="crumb-name" href="/jscss/admin/design/">作品管理</a><span class="crumb-step">&gt;</span><span>新增作品</span></div>
  29. </div>
  30. <div class="result-wrap">
  31. <div class="result-content">
  32. <form action="" method="post" id="myform" name="myform" enctype="multipart/form-data">
  33. <table class="insert-tab" width="100%">
  34. <tbody>
  35. <tr>
  36.  
  37. <th width="120"><i class="require-red">*</i>上级分类:</th>
  38. <td>
  39. <select name="cate_pid" id="catid" class="required">
  40. <option value="">顶级分类</option>
  41. </select>
  42. </td>
  43. </tr>
  44.  
  45. <tr>
  46. <th><i class="require-red">*</i>栏目中文名:</th>
  47. <td>
  48. <input class="common-text required" id="title" name="cate_name" size="50" value="{$vo['cate_name']}" type="text">
  49. </td>
  50. </tr>
  51.  
  52. <tr>
  53. <th><i class="require-red">*</i>栏目英文名:</th>
  54. <td><input class="common-text" name="cate_ename" size="50" value="{$vo['cate_ename']}" type="text"></td>
  55. </tr>
  56.  
  57. <tr>
  58. <th>栏目关键词:</th>
  59. <td><input class="common-text" name="cate_keywords" size="50" value="{$vo['cate_keywords']}" type="text"></td>
  60. </tr>
  61.  
  62. <tr>
  63. <th>栏目图片:</th>
  64. <td>
  65. <if condition="$vo['cate_pic'] eq ''">
  66. <div style="color:red;">抱歉目前没有图片数据</div>
  67. <else/>
  68. <img src="/{$vo['cate_pic']}" width="100" height="60">
  69. </if>
  70. <input name="cate_pic" id="" type="file"><!--<input type="submit" onclick="submitForm('/jscss/admin/design/upload')" value="上传图片"/>--></td>
  71. </tr>
  72.  
  73. <tr>
  74. <th>栏目描述:</th>
  75. <td>
  76. <textarea name="cate_desc" style="margin: 0px; width: 609px; height: 157px;">{$vo['cate_desc']}</textarea>
  77. </td>
  78. </tr>
  79.  
  80. <tr>
  81. <th>栏目类型:</th>
  82. <if condition="$vo['cate_type'] eq 0">
  83. <td>
  84. 封面栏目:<input type="checkbox" checked name="cate_type" value="0"> <br />
  85. 列表栏目:<input type="checkbox" name="cate_type" value="1"> <br />
  86. 产品栏目:<input type="checkbox" name="cate_type" value="2">
  87. </td>
  88. <elseif condition="$vo['cate_type'] eq 1" />
  89. <td>
  90. 封面栏目:<input type="checkbox" name="cate_type" value="0"> <br />
  91. 列表栏目:<input type="checkbox" checked name="cate_type" value="1"> <br />
  92. 产品栏目:<input type="checkbox" name="cate_type" value="2">
  93. </td>
  94. <elseif condition="$vo['cate_type'] eq 2" />
  95. <td>
  96. 封面栏目:<input type="checkbox" name="cate_type" value="0"> <br />
  97. 列表栏目:<input type="checkbox" name="cate_type" value="1"> <br />
  98. 产品栏目:<input type="checkbox" checked name="cate_type" value="2">
  99. </td>
  100. </if>
  101. </tr>
  102.  
  103. <tr>
  104. <th>栏目内容:</th>
  105. <td>
  106. <textarea id="content" name="cate_content">{$vo['cate_content']}</textarea>
  107. </td>
  108. </tr>
  109. <input type="hidden" name="cate_id" value="{$vo['cate_id']}" />
  110. <tr>
  111. <th></th>
  112. <td>
  113. <input class="btn btn-primary btn6 mr10" value="提交" type="submit">
  114. <input class="btn btn6" onclick="history.go(-1)" value="返回" type="button">
  115. </td>
  116. </tr>
  117. </tbody></table>
  118. </form>
  119. </div>
  120. </div>
  121.  
  122. </div>
  123. <!--/main-->
  124. </div>
  125. <script type="text/javascript">
  126. UE.getEditor('content',{initialFrameWidth:890,initialFrameHeight:550});
  127. //initialFrameWidth: null 这样就是他自动设置大小
  128. </script>
  129. <style type="text/css">
  130. #edui2 div{
  131. height:25px;
  132. }
  133. </style>
  134. </body>
  135. </html>
  1. public function edit(){
  2. $id = I('id');
  3. $vo = M('Category')->find($id);
  4. $this -> assign('vo',$vo);
  5. if(IS_POST){
  6. $data['cate_id'] = I('cate_id');
  7. $data['cate_name'] = I('cate_name');
  8. $data['cate_ename'] = I('cate_ename');
  9. $data['cate_keywords'] = I('cate_keywords');
  10. $data['cate_desc'] = I('cate_desc');
  11. $data['cate_type'] = I('cate_type');
  12. $data['cate_pid'] = I('cate_pid');
  13. $data['cate_content'] = I('cate_content');
  14. if($_FILES['cate_pic']['tmp_name']!=''){
  15. $upload = new \Think\Upload();// 实例化上传类
  16. $upload->maxSize = 3145728 ;// 设置附件上传大小
  17. $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
  18. $upload->rootPath = './'; //这个一定要加否则很容易中招
  19. $upload->savePath = 'Public/Uploads/'; // 设置附件上传目录
  20. $info = $upload->uploadOne($_FILES['cate_pic']);
  21. if($info){
  22. //删除原来的图片
  23. $cp = M('Category')->find($id);
  24. unlink($cp['cate_pic']);
  25. // 上传成功 获取上传文件信息
  26. //这里组装sql语句,让图片融入$data['pic']里面
  27. $data['cate_pic'] = $info['savepath'].$info['savename'];
  28. }else{
  29. $this->error($upload->getError());
  30. }
  31. }
  32. $mod = D('Category');
  33. if($mod-> create($data)){
  34. if($mod->save()){
  35. $this->success('添加栏目成功',U('Category/lists'));
  36. }else{
  37. $this ->error('添加栏目失败');
  38. }
  39. }else{
  40. $this->error($brandModel->getError());
  41. }
  42. }
  43. $this->display();
  44. }

这样即可实现

夺命雷公狗ThinkPHP项目之----企业网站7之栏目的修改(主要用模型来验证字段)的更多相关文章

  1. 夺命雷公狗ThinkPHP项目之----企业网站11之栏目的删除完成

    我们删除要在分类模型中添加一个_before_delete的钩子函数,而且在删除一个分类时候,如果这个分类有子分类就不允许删除 model层代码如下所示: <?php namespace Adm ...

  2. 夺命雷公狗ThinkPHP项目之----企业网站10之栏目的编辑完善(无限极分类的完成)

    我们编辑首先就要考虑将下拉框效果实现出来,然后再进行下一步操作: 我们用到了Model层的操作,在第8讲里面其实已经写好了catTree方法,控制器如下所示: 然后在列表页然他变量进行输出 然后开始通 ...

  3. 夺命雷公狗ThinkPHP项目之----企业网站9之栏目的列表完善(无限极分类的完成)

    我们刚才已经写好model了,那么这里直接来调用下他即可: public function lists(){ $mod = D('Category')->catTree(); $this -&g ...

  4. 夺命雷公狗ThinkPHP项目之----企业网站8之栏目的添加完善(无限极分类的完成)

    我们刚才只是完成了添加的一部分,但是我们的上级分类也不能永远都是只有一个死的嘛,所以我们需要对她进行修改: 我们先将add方法里面的数据查出来再说: 然后在模板页进行遍历: 展示效果如下所示: 虽然是 ...

  5. 夺命雷公狗ThinkPHP项目之----企业网站6之栏目的添加(主要用模型来验证字段)

    我们刚才的控制器已经写好了,那么我们现在就来完成我们的模型, 首先我们在Model目录下创建一个CategoryModel.class.php 代码如下: <?php namespace Adm ...

  6. 夺命雷公狗ThinkPHP项目之----企业网站5之栏目的添加(主要是图片上传)

    我们照老,先老搞定控CategoryController.class.php制器,代码如下所示: <?php namespace Admin\Controller; use Think\Cont ...

  7. 夺命雷公狗ThinkPHP项目之----企业网站1之快速搭建后台

    我们还是老规矩照老方法,将框架里面多余的东西都干掉,然后在index.php里面将框架搭建起来 <?php //定义项目目录 define('APP_PATH','./WEB/'); //开启调 ...

  8. 夺命雷公狗ThinkPHP项目之----企业网站17之网站配置页的添加

    为了网站可以智能一点,所以我们开始来写一个网站配置的功能.. 所以我来写他的数据表: 先来完成他的添加功能,页面效果如下所示: lists.html代码如下所示: <!doctype html& ...

  9. 夺命雷公狗ThinkPHP项目之----企业网站28之网站前台左侧导航的实现

    我们基于刚才在model层的找顶级分类的代码在进行修改即可: <?php namespace Home\Controller; use Think\Controller; class Commo ...

随机推荐

  1. Block作为property属性实现页面之间传值(代替Delegate代理与协议结合的方法)

    需求:在ViewController中,点击Button,push到下一个页面NextViewController,在NextViewController的输入框TextField中输入一串字符,返回 ...

  2. PySe-004-Se-WebDriver 启动浏览器之二 - Chrome

    上篇文章简略讲述了 WebDriver 启动 firefox 浏览器的示例脚本源码,具体请参阅: PySe-003-Se-WebDriver 启动浏览器之一 - Firefox 此文主要讲述在 Mac ...

  3. Java学习-011-创建文件实例及源代码

    此文源码主要为应用 Java 创建文件的源代码.若有不足之处,敬请大神指正,不胜感激! 创建文件的源代码如下所示: /** * @function 文件操作:创建文件.若文件不存在,则直接创建文件:若 ...

  4. JMeter学习-003-JMeter与LoadRunner的异曲同工

    本节主要对 JMeter 与 LoadRunner 的优缺点进行概要的总结,若有不足之处,敬请指正,不胜感激! 同时,我也不得不承认,在对 JMeter 和 LoadRunner 进行比较时,我个人的 ...

  5. 1.后台如何获取 jquery get方式的ajax的参数

    1. update.jsp 1.2 默认是dataType是json getJSON: function( url, data, callback ) { return jQuery.get(url, ...

  6. python笔记 - day4-之装饰器

                 python笔记 - day4-之装饰器 需求: 给f1~f100增加个log: def outer(): #定义增加的log print("log") ...

  7. 借助fastjson 实体对象转map

    private Map<String, Object> object2Map(Object object){ JSONObject jsonObject = (JSONObject) JS ...

  8. ComparatorChain、BeanComparator用法示例(枚举类型排序转)

    工作中遇到按照类的某个属性排列,这个属性是个枚举类型,按照要求的优先级排列. 可以使用ComparatorChain.BeanComparator.FixedOrderComparator实现. 举一 ...

  9. getconf 命令

    getconf 命令 用途 将系统配置变量值写入标准输出. 系统的默认参数,比如mkfs读取默认参数,并格式化,默认PAGESIZE是4096 语法 getconf [ -v specificatio ...

  10. ucenter 客户端里的自动方法

    <?php /** * UCenter 应用程序开发 Example * * UCenter 简易应用程序,应用程序有自己的用户表 * 使用到的接口函数: * uc_authcode() 可选, ...