IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> tp框架学生系统带音频条件 -> 正文阅读

[PHP知识库]tp框架学生系统带音频条件

使用tp框架但是使用的是已经被封装过的,难点主要是套用模板,熟悉不一样的语法方式,但本质是一样的
分两个主体观看:
一个主体只能看并填写自已的数据不可修改
另一个主体属于内部人员可修改数据
tp框架中找到config.php
![在这里插入图片描述](https://img-blog.csdnimg.cn/7aa1fc70eb33495a8eb0155fb583781d.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzUxNTA0OTA1,size_16,color_FFFFFF,t_![
web为不可修改人员所能看到的模板
另外还设置了admin模板内部人员可修改(只需要在域名后面加上‘/admin’,就可以进入到可内部人员修改页面)在这里插入图片描述
1.前端观看页面
主页的表格渲染:
因为只有一个页面但存在不同功能,所以我只需要在view视图文件夹下建一个index.html页面
在这里插入图片描述
类似图片上这些代码,是基本的css,js,css只需要从框中复制过来,最好不要改动,因为已经被封装过了,谁也不知道里面有什么,不敢乱修改
在这里插入图片描述
1.以第一个红框代表index.php的index方法进行渲染,这时候只会将表头进行渲染,不会有数据,因为方法内没写嗯
2.之后的红框代表表格的表头;要了解的还有field:类似于name属性,之后各种功能是要通过field的

 public function index()
 {
	 return $this->fetch('/index');
 }

效果图:
在这里插入图片描述
增加功能
1.index.html页面 写跳转的新增按钮

<div>
    <a href="javascript:;" onclick="wk.layer_show('添加内容','{:url('index/add')}')"><button class="layui-btn" data-type="add">
        <i class="fa fa-plus"></i> 添加记录
    </button>
    </a>
</div>

在这里插入图片描述

2.在view目录下,index文件夹下
在这里插入图片描述

{include file="public/header" /}
<body class="gray-bg">
<div class="layui-fluid layui-col-md12">
    <div class="layui-card">
        <div class="layui-card-header">添加</div>
        <form class="layui-form" method="post">
            <div class="layui-row layui-col-space10 layui-form-item ">
                <div class="layui-form-item layui-col-md-offset1 layui-col-md8">
                    <label class="layui-form-label">名称</label>
                    <div class="layui-input-block">
                        <input type="text" class="layui-input " name="keyword" lay-verify="required" placeholder="学员名称">
                    </div>
                </div>
                <div class="layui-form-item layui-col-md-offset1 layui-col-md8">
                    <label class="layui-form-label">名称</label>
                    <div class="layui-input-block">
                        <input type="text" class="layui-input " name="title" lay-verify="required" placeholder="例如:懿贝瑞网络技术有限公司">
                    </div>
                </div>
                <div class="layui-form-item layui-col-md-offset1 layui-col-md8">
                    <label class="layui-form-label">电话</label>
                    <div class="layui-input-block">
                        <input type="text" class="layui-input " name="ip" lay-verify="required" placeholder="面试官电话">
                    </div>
                </div>
                <div class="layui-form-item layui-col-md-offset1 layui-col-md8">
                    <label class="layui-form-label">地址</label>
                    <div class="layui-input-block">
                        <input type="text" class="layui-input " name="remark" lay-verify="required" placeholder="例如:杭州市普山区国贸大厦一层168号">
                    </div>
                </div>
               
                <div class="layui-form-item layui-col-md-offset1 layui-col-md8">
                    <label class="layui-form-label">音频上传</label>
                    <input type="hidden" name="music" id="lay-music" lay-verify="music">
                    <div class="layui-input-block">
                        <div id="lay-music-upload">上传音频</div>
                        <blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;">
                            预览音频:
                            <div class="layui-upload-list" id="lay-music-list">
                            </div>
                        </blockquote>
                    </div>
                </div>
                <div class="layui-form-item layui-col-md-offset1 layui-col-md10">
                    <label class="layui-form-label">面试内容:</label>
                    <div class="layui-input-block" >
                        <textarea name="content" id="LAY_editor2" placeholder="面试内容"></textarea>
                    </div>
                </div>
                
                <div class="layui-form-item layui-col-md-offset1 layui-col-md8">
                    <div class="layui-input-block">
                        <button class="layui-btn" lay-filter="component-form-element">保存</button>
                        <button class="layui-btn layui-btn-primary" onclick="wk.layer_close('close')">关闭</button>
                    </div>
                </div>
            </div>
        </form>
    </div>
</div>
{include file="public/footer" /}

</body>

3.页面渲染
因为这类框架标签自带form表单提交功能,只需要通过ajax异步通讯传值

<script type="text/javascript" src="__JS__/plugins/cropper/Crop.js"></script>
<script>
  
    wk.uploadMusic({size:100,type:'m4a',url:"{:url('Upload/uploadmusic')}",domain:"{:config('qiniu.domain')}"});
    layui.use(['form'], function() {
        var form = layui.form
           //百度富文本编辑器
        var editor = UE.getEditor('LAY_editor2', {
            initialFrameHeight:450,
            autoHeight: false,
            autoHeightEnabled:false,
            autoFloatEnabled:false
        });
        form.on('submit(component-form-element)', function (data) {
            $('.layui-btn').addClass('layui-disabled').attr('disabled','disabled');
           console.log(data.field);
            $.ajax({
                url:"{:url('web/Index/add')}",
                type:'post',
                dataType:'json',
                data:data.field,
                success:function(res){
                    console.log(res)
                    if (res.code == 200) {
                        layer.msg(res.msg,{icon:1,time:1500,shade:0.1},function(index){
                            wk.layer_close();
                        })
                    } else {
                        $(".layui-btn").removeClass('layui-disabled').removeAttr('disabled');
                        wk.error(res.msg);
                        return false;
                    }
                }
            })
        });
    });
</script>

找到index.php的add方法
在这里插入图片描述

public function add()
    {
        if(request()->isPost()){
        //判断是否为post提交方式
            extract(input());
            $param = input('post.');
            $article = new InedxModel();
            //方法新增用了引用了模型,模型里有insert方法
            $flag = $article->insertArticle($param);
            if($flag){
               $this->assign("data",200);
               return $this->fetch('index/add');
            }
        }
        $cate = new ArticleCateModel();
        $area = new \app\common\place\Area;
        $this->assign("data",100);
        //页面渲染
        return $this->fetch('index/add',['province'=>$area->province(),'cate'=>$cate->getCate()]);
    }

这个时候他已经将值插入到了数据库并跳转到add页面,ajax回调获取到值并跳转到主页。
在这里插入图片描述
这个时候找到index.php中的red方法进行重定向跳转,到主页
在这里插入图片描述
编辑功能
在这里插入图片描述
1.首页表格中
在这里插入图片描述

在这里插入图片描述
2.编辑页面html(新增页面的同级目录)
在这里插入图片描述
3.

public function edit()
    {
        $article = new ArticleModel();
        $param = input('post.');
        if(request()->isPost()){//判断提交方式,因为我不需要修改所以不需要用sql语句直接提示就好,用不着他
            $param = input('post.');
            return json(['code' => $flag['code'], 'data' => $flag['data'], 'msg' => $flag['msg']]);
        }
        $id = input('param.id');
        $cate = new ArticleCateModel();
        $data = $article->getOneArticle($id);
        $this->assign('article',$data);//赋值
        return $this->fetch('index/edit');//渲染编辑页面
       
    }

4.edit.html input框内不要忘记填变量值
音频
因为我在音频的引用上报了很多错所有就开一部分专门写音频
以新增为例
主页表格:
在这里插入图片描述
主页js:
在这里插入图片描述

html:

  <div class="layui-form-item layui-col-md-offset1 layui-col-md8">
      <label class="layui-form-label">音频上传</label>
	       <input type="hidden" name="music" id="lay-music" lay-verify="music">
	       <div class="layui-input-block">
	           <div id="lay-music-upload">上传音频</div>
	           <blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;">
	               预览音频:
	               <div class="layui-upload-list" id="lay-music-list">
	               </div>
	           </blockquote>
      		</div>	
 </div>

js:

 wk.uploadMusic({size:100,type:'m4a',url:"{:url('Upload/uploadmusic')}",domain:"{:config('qiniu.domain')}"});

Upload.php:
在这里插入图片描述

1.音频按钮只有左上角能点击触发事件,其余都无法点击
解决方法,把新增页面与主页面分开不写在同一个html页面(因为我之前写在了一块)造成css有冲突

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-09 10:01:53  更:2021-08-09 10:02:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/7 18:30:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码