现在位置首页 / 产品设计 /正文

ThinkPhP示例:添加|修改

作者: 春暖花开 | 2015年8月12日| 热度:℃ | 评论: |参与:

站长:

从今天开始将为大家分享一个关于Thinkphp框架的学习教程。欢迎大家关注。


源码下载


上一篇介绍了列表的功能,本篇将要介绍 添加和 维护的功能及实现。


配置说明:


列表页面:

list.html 中

    <form id="form" action="lists" method="post" >
           <input type="button" id="btndel" value="删除">
           搜索:<input type="text" name="txtSearchText" placeholder="请输入查询内容" value="{$txtSearchText}" >
           <input type="button" id="btnsearch" value="搜索"><input type="button" id="btnadd" value="新增">
           <table id="tb_list" class="table">
             <thead>
             <tr>
               <th><input id="checkboxall" type="checkbox" onclick="selectAll();"></th>
               <th>编号</th>
               <th>名称</th>
               <th>描述</th><th>工作</th>
               <th>头像</th>
               <th>状态</th>
               <th>管理</th>
             </tr>
             </thead>
             <tbody>
             </tbody>
           </table>
           <ul class="page" id="ListPager"></ul>
       </form>


 js :

    $(function() {
         $("#btnadd").click(add); //按钮添加时间
     });
  function add(){
         window.location.href="{:U(add)}"; // 点击跳转 TestDataController/add()   
     }



新增功能:


add.html:

    <form method="post" action="" enctype="multipart/form-data">
         新增操作:<br />
              <p>username:<input type="text" value="" id="txtname" name="username" /></p>
              <p>description:<input type="text" value="我是个驴友" id="txtdesc" name="description" /></p>
              <p>头像:<input type='file' name="imageurl"></p>
              <p>工作性质:
              <select name="job">
                <volist name="joblist" id="vo">
                     <option value='{$key}'>{$vo}</option>
                </volist>
              </select></p>
              <input id="action_add2" type="submit" value="新 增">
     </form>

  说明:<volist></volist> 用于在模板中循环输出数据集或者多维数组。http://document.thinkphp.cn/manual_3_2.html#volist




维护功能:




edit.html

          <form method="post" action="" enctype="multipart/form-data">
                        维护操作:<br />
              <p>ID:{$oldData['id']}<input type="hidden" value="{$oldData['id']}" name="hidid"></p>          
              <p>username:<input type="text" id="txtname" name="username" value="{$oldData['username']}" /></p>
              <p>description:<input type="text" id="txtdesc" name="description" value="{$oldData['description']}"  /></p>
              <p>头像:<input type='file' name="imageurl"><img src='/Uploads/{$oldData["imageurl"]}' width="50" height="60"></p>
              <p>工作性质:
              <select name="job">
                <volist name="joblist" id="vo" key="k">
                     <option value="{$k}" <eq name="k" value="$oldData['job']">selected</eq> >
                         {$vo}
                     </option>
                </volist>
              </select></p>
               <p>state:
                   <select name="state">
                   <option value="1" <eq name="oldData['state']" value="1">selected</eq>>1-正常</option>
                   <option value="2" <eq name="oldData['state']" value="2">selected</eq>>2-删除</option>
                   </select></p>
              <input id="action_add2" type="submit" value="维护">
          </form>


Controller:

TestDataController.class.php

     

 public function add() {
        $userinfo = D ( 'TestData' );
        if (IS_POST) { 
            // 提交表单
                 $this->checkPostData ();
                // 组合数据
            $data ['username'] = I ( 'post.username' );
            $data ['description'] = I ( 'post.description' );
            $data ['state'] = 1; 
            $data ['imageurl'] = "";
            $data ['job'] = I ( 'post.job' );
            // 上传文件开始
            $upload = new \Think\Upload (); // 实例化上传类
            $upload->maxSize = 3145728; // 设置附件上传大小
            $upload->exts = array (
                    'jpg',
                    'gif',
                    'png',
                    'jpeg' 
            ); // 设置附件上传类型
            $upload->rootPath = './Uploads/'; // 设置附件上传根目录
            $upload->savePath = ''; // 设置附件上传(子)目录
                                       
            $info = $upload->upload ();
            if (! $info) { // 上传错误提示错误信息
                             // $this->error($upload->getError());
            } else { // 上传成功
                $data ['imageurl'] = $info ['imageurl'] ['savepath'] . $info ['imageurl'] ['savename']; //获取到上传成功后的文件路径
            }
            // 上传文件结束,获取到成功后的文件路径
            //将所有数据保存到数据库
            if (false !== $userinfo->update ( $data )) {
                $this->success ( '保存成功', U ( 'lists' ) );
            } else {
                $error = $userinfo->getError ();
                $this->error ( empty ( $error ) ? '未知错误' : $error );
            }
        } else {
            $joblist = C ( "JobCategory" );
            $this->assign ( 'joblist', $joblist ); // 填充job下拉框
            $this->display ( 'TestData/add' );
        }
        
    }

    说明:I() 获取页面 post来的数据。用于更加方便和安全的获取系统输入变量。http://document.thinkphp.cn/manual_3_2.html#input_var


  

  public function edit() {
        if (IS_POST) { // 提交表单
            $this->checkPostData ();
            $data ['id'] = I ( 'post.hidid' );
            $data ['username'] = I ( 'post.username' );
            $data ['description'] = I ( 'post.description' );
            $data ['state'] = I ( 'post.state' );
            $data ['job'] = I ( 'post.job' );
            
            $upload = new \Think\Upload (); // 实例化上传类
            $upload->maxSize = 3145728; // 设置附件上传大小
            $upload->exts = array (
                    'jpg',
                    'gif',
                    'png',
                    'jpeg' 
            ); // 设置附件上传类型
            $upload->rootPath = './Uploads/'; // 设置附件上传根目录
            $upload->savePath = ''; // 设置附件上传(子)目录
                                         // 上传文件
            $info = $upload->upload ();
            if (! $info) { // 上传错误提示错误信息
                             // $this->error($upload->getError());
            } else { // 上传成功
                $data ['imageurl'] = $info ['imageurl'] ['savepath'] . $info ['imageurl'] ['savename'];
            }
            $userinfoModel = D ( 'TestData' );
            if (false !== $userinfoModel->update ( $data )) {
                $this->success ( '保存成功', U ( 'lists' ) );
            } else {
                $error = $userinfoModel->getError ();
                $this->error ( empty ( $error ) ? '未知错误' : $error );
            }
        }else{
            $id = I ( 'get.id' ); // 获取到Id参数
             
            // 填充job下拉框
            $joblist = C ( "JobCategory" );
            $this->assign ( 'joblist', $joblist );
            
            $userinfoModel = D ( 'TestData' );
            $UserInfo = $userinfoModel->GetUserInfoByID ( $id );
            if (empty ( $UserInfo ) == true)
                die ( '完蛋' );
            $this->assign ( "oldData", $UserInfo ); //
            $this->display ( 'TestData/edit' );
        }
    }


Model:
TestDataModel.class.php
  

  /**
     * 更新信息(添加或修改操作)
     */
    public function update($data) {
        $userinfo = M ( 'userinfo' );
        if (! $data) { // 数据对象创建错误
            return false;
        }
        if (empty ( $data ["id"] )) {
            // $sql = $userinfo->fetchSql(true)->add($data);
            $res = $userinfo->add ( $data ); //添加操作
        } else {
            $res = $userinfo->save ( $data ); //修改操作
        }
        return $res;
    }


点击阅读本文所属分类的更多文章: 产品设计 。和高手一起交流:346717337
友荐云推荐

未注明转发、原文均为本站原创。分享本文请注明 原文链接

给您更多信息和帮助

在这里您可以找到更多:

技术交流群:346717337 Jquery插件交流

投稿:[email protected]

承接:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/业务咨询

echarts教程系列
本月最热文章

微信扫一扫,徜徉悠嘻网,您的休闲乐园

微信公众号:快乐每一天

随机文章
标签

技术交流群:346717337

投稿:[email protected]

专业专注:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/付费问题咨询