PHP 实现知识添加功能

1 准备一张表
2 创建二级导航  添加知识, 知识列表
3 创建控制器
4 实现知识的添加功能  添加add方法 。add.html 模板
    表单 注意 文件上传需要有enctype ,文件域file类型 请求类型post
5 改写add方法 处理表单提交数据
6 编写自定义模型方法
KnowledgeController控制器类
<?php
namespace Admin\Controller;

use     Think\Controller;

class KnowledgeController extends Controller{
    //add方法
    public function add(){
        //判断请求类型
        if(IS_POST){
            //如果是post请求
            $post = I('post.');
            //实例化自定义模型类
            $model = D('Knowledge');
            //接收数据
            $result = $model -> addData($post,$_FILES['thumb']);
            //判断是否成功
            if($result){
                //成功
                $this -> success('添加成功!',U('showList'),3);
            }else{
                $this -> error('添加失败!');
                //失败
            }

        }else{
            //展示模板
        $this -> display();
        }
    }
}

KnowledgeModel 模型类
<?php
namespace Admin\Model;

use Think\Model;

class KnowledgeModel extends Model{
    //addData方法
    public function addData($post,$file){
        //判断是否有文件上传
        //要求size大于0 ,或者error == 0
        if($file['error'] == '0'){
            //如果有文件 //需要在入口文件配置路径
            //用数组接收
            $cfg = array('rootPath' => WORKING_PATH . UPLOAD_ROOT_PATH);
            //实现上传类
            $upload = new \Think\Upload($cfg);
            //上传
            $info = $upload -> uploadOne($file);
            //dump($info);die; //打印输出看有没有报错
            if($info){
                    //成功之后补全字段
                    $post['picture'] = UPLOAD_ROOT_PATH    . $info['savepath']    . $info['savename'];
                    //制作缩略图
                    //1实例化类
                    $image = new \Think\Image();
                    //2打开图片传递图片路径
                    $image -> open(WORKING_PATH . $post['picture']);
                    //3制作缩略图
                    $image -> thumb(100,100);
                    //4保存图片 传递完整路径(目录+文件名)
                    $image -> save(WORKING_PATH . UPLOAD_ROOT_PATH . $info['savepath'] . 'thumb' . $info['savename']);
                    //补全字段
                    $post['thumb'] = UPLOAD_ROOT_PATH . $info['savepath'] . 'thumb' . $info['savename'];
            }

        }
        //补全字段addtime
        $post['addtime'] = time();  
        dump($post);die;
        //添加操作
         return $this -> add($post);
    }
}

add.html 模板

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="__ADMIN__/css/base.css" />
<link rel="stylesheet" href="__ADMIN__/css/info-reg.css" />
<title>移动办公自动化系统</title>
<style type='text/css'>
    select {
        background: rgba(0, 0, 0, 0) url("__ADMIN__/images/inputbg.png") repeat-x scroll 0 0;
        border: 1px solid #c5d6e0;
        height: 28px;
        outline: medium none;
        padding: 0 8px;
        width: 240px;
    }
    .main p input {
        float:none;
    }
</style>
</head>

<body>
<div class="title"><h2>添加知识</h2></div>
<form action="" method="post" enctype="multipart/form-data">
<div class="main">
    <p class="short-input ue-clear">
        <label>标题:</label>
        <input name="title" type="text" placeholder="标题..." />
    </p>
    <p class="short-input ue-clear">
        <label>缩略图:</label>
        <input name="thumb" type="file"/>
    </p>
    <p class="short-input ue-clear">
        <label>作者:</label>
        <input name="author" type="text" placeholder="作者..." />
    </p>
    <p class="short-input ue-clear">
        <label>描述:</label>
        <textarea name="description" style="font-family:Microsoft YaHei !important; font-size:14px;" placeholder="请输入描述..." ></textarea>
    </p>
    <p class="short-input ue-clear">
        <label>内容:</label>
        <textarea name="content" style="font-family:Microsoft YaHei !important; font-size:14px;" placeholder="请输入内容..." ></textarea>
    </p>
</div>
<div class="btn ue-clear">
    <a href="javascript:;" class="confirm" id='btnSubmit'>确定</a>
    <a href="javascript:;" class="clear" id='btnReset'>清空内容</a>
</div>
</form>
</body>
<script type="text/javascript" src="__ADMIN__/js/jquery.js"></script>
<script type="text/javascript" src="__ADMIN__/js/common.js"></script>
<script type="text/javascript" src="__ADMIN__/js/WdatePicker.js"></script>
<script type="text/javascript">
$(function(){
    $('#btnSubmit').on('click',function(){
        $('form').submit();
    });
    
    $('#btnReset').on('click',function(){
        $('form')[0].reset();
    });
});    

$(".select-title").on("click",function(){
    $(".select-list").toggle();
    return false;
});
$(".select-list").on("click","li",function(){
    var txt = $(this).text();
    $(".select-title").find("span").text(txt);
});
showRemind('input[type=text], textarea','placeholder');
</script>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值