美文网首页
开发企业网站6 -- 后台功能划分

开发企业网站6 -- 后台功能划分

作者: 潘肚饿兵哥哥 | 来源:发表于2019-09-25 22:22 被阅读0次

P32 删除了很多不用的功能,分离了一些部分出来,具体要看视频

\color{rgba(254, 67, 101, .8)}{把模板根据业务进行修改}

<aside class="Hui-aside">
    <div class="menu_dropdown bk_2">
        <dl id="menu-article">
            <dt><i class="Hui-iconfont">&#xe616;</i> 新闻中心<i class="Hui-iconfont menu_dropdown-arrow">&#xe6d5;</i></dt>
            <dd>
                <ul>
                    <li><a data-href="article-list.html" data-title="新闻分类" href="javascript:void(0)">新闻分类</a></li>
                    <li><a data-href="article-list.html" data-title="新闻列表" href="javascript:void(0)">新闻列表</a></li>
            </ul>
        </dd>
    </dl>
        
        <dl id="menu-product">
            <dt><i class="Hui-iconfont">&#xe620;</i> 产品中心<i class="Hui-iconfont menu_dropdown-arrow">&#xe6d5;</i></dt>
            <dd>
                <ul>
                    <li><a data-href="product-category.html" data-title="产品分类" href="javascript:void(0)">产品分类</a></li>
                    <li><a data-href="product-list.html" data-title="产品列表" href="javascript:void(0)">产品列表</a></li>
            </ul>
        </dd>
    </dl>
        
        
        <dl id="menu-admin">
            <dt><i class="Hui-iconfont">&#xe62d;</i> 权限管理<i class="Hui-iconfont menu_dropdown-arrow">&#xe6d5;</i></dt>
            <dd>
                <ul>
                    <li><a data-href="admin-role.html" data-title="角色管理" href="javascript:void(0)">角色管理</a></li>
                    <li><a data-href="admin-permission.html" data-title="权限管理" href="javascript:void(0)">权限管理</a></li>
                    <li><a data-href="admin-list.html" data-title="管理员列表" href="javascript:void(0)">管理员列表</a></li>
            </ul>
        </dd>
    </dl>
        
        <dl id="menu-system">
            <dt><i class="Hui-iconfont">&#xe62e;</i> 系统管理<i class="Hui-iconfont menu_dropdown-arrow">&#xe6d5;</i></dt>
            <dd>
                <ul>
                    <li><a data-href="system-base.html" data-title="系统设置" href="javascript:void(0)">系统设置</a></li>
                    <li><a data-href="system-category.html" data-title="轮播图" href="javascript:void(0)">轮播图</a></li>
                    <li><a data-href="system-data.html" data-title="前台导航" href="javascript:void(0)">前台导航</a></li>
            </ul>
        </dd>
    </dl>
</div>
</aside>
image.png

\color{rgba(254, 67, 101, .8)}{新闻中心和产品中心基本一样,所以加上下面的权限管理和系统管理一共要做三个模块}

\color{rgba(254, 67, 101, .8)}{先把新闻中心的新闻分类和新闻列表html中的跳转地址改掉:}

<li><a data-href="index.php?m=admin&c=news.category" data-title="新闻分类" href="javascript:void(0)">新闻分类</a></li>
<li><a data-href="index.php?m=admin&c=news.list" data-title="新闻列表" href="javascript:void(0)">新闻列表</a></li>

\color{rgba(254, 67, 101, .8)}{然后在后台admin下建一个文件news.category.php}

\color{rgba(254, 67, 101, .8)}{还是先包含初始化文件进来}

require_once('init.php');

\color{rgba(254, 67, 101, .8)}{然后这个页面需要嵌入一个管理表格,进入:}

D:\php学习\H-ui_admin_v3.1.3.1\H-ui.admin

\color{rgba(254, 67, 101, .8)}{页面,打开index.html,点开侧边栏咨询管理}

image.png

\color{rgba(254, 67, 101, .8)}{右键查看框架源代码,将模板代码复制到templates→admin新建文件news_categroy.html中}
\color{rgba(254, 67, 101, .8)}{在使用模板的过程中,会有很多的跳转,要写很多的url}
\color{rgba(254, 67, 101, .8)}{可以在初始化文件中这样写}

//这里这样写是因为前后端的文件名其实是相同的,
    //为了不用每次写那么多,这样写可以直接调$tpl_name
    //$c  就是文件名
    $tpl_name = $c.'.html';

这样,只要用$tpl_name就可以拿到网址了

\color{rgba(254, 67, 101, .8)}{把main.php、welcome.php页面调的也改掉}

require_once('init.php');
    
$smarty->display('welcome.html');//调用welcome页面
改成:
$smarty->display($tpl_name);//调用welcome页面

\color{rgba(254, 67, 101, .8)}{因为几乎所有页面的头部都差不多,所以把头部封装一个页面,方便调用}

在templates admin文件夹下建一个headers.html

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta name="renderer" content="webkit|ie-comp|ie-stand">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
<link rel="Bookmark" href="/favicon.ico" >
<link rel="Shortcut Icon" href="/favicon.ico" />
<!--[if lt IE 9]>
<script type="text/javascript" src="<{$smarty.const.__STATIC__}>lib/html5shiv.js"></script>
<script type="text/javascript" src="<{$smarty.const.__STATIC__}>lib/respond.min.js"></script>
<![endif]-->
<link rel="stylesheet" type="text/css" href="<{$smarty.const.__STATIC__}>static/h-ui/css/H-ui.min.css" />
<link rel="stylesheet" type="text/css" href="<{$smarty.const.__STATIC__}>static/h-ui.admin/css/H-ui.admin.css" />
<link rel="stylesheet" type="text/css" href="<{$smarty.const.__STATIC__}>lib/Hui-iconfont/1.0.8/iconfont.css" />
<link rel="stylesheet" type="text/css" href="<{$smarty.const.__STATIC__}>static/h-ui.admin/skin/default/skin.css" id="skin" />
<link rel="stylesheet" type="text/css" href="<{$smarty.const.__STATIC__}>static/h-ui.admin/css/style.css" />
<!--[if IE 6]>
<script type="text/javascript" src="<{$smarty.const.__STATIC__}>lib/DD_belatedPNG_0.0.8a-min.js" ></script>
<script>DD_belatedPNG.fix('*');</script>
<![endif]-->
<title>仿腾讯官网</title>

</head>

\color{rgba(254, 67, 101, .8)}{然后用smarty包含进去}

<{include file="header.html"}>
image.png

\color{rgba(254, 67, 101, .8)}{把script公共模板也剪切到header.html页面来}

<!--_footer 作为公共模版分离出去-->
<script type="text/javascript" src="<{$smarty.const.__STATIC__}>lib/jquery/1.9.1/jquery.min.js"></script> 
<script type="text/javascript" src="<{$smarty.const.__STATIC__}>lib/layer/2.4/layer.js"></script>
<script type="text/javascript" src="<{$smarty.const.__STATIC__}>static/h-ui/js/H-ui.min.js"></script>
<script type="text/javascript" src="<{$smarty.const.__STATIC__}>static/h-ui.admin/js/H-ui.admin.js"></script> 
<!--/_footer 作为公共模版分离出去-->

\color{rgba(254, 67, 101, .8)}{在p32的30-50分钟之间删除了很多东西,没有一一记下来}
\color{rgba(254, 67, 101, .8)}{继续把日历插件和点击显示全屏窗口和半屏窗口代码剪切到header中}

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta name="renderer" content="webkit|ie-comp|ie-stand">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
<link rel="Bookmark" href="/favicon.ico" >
<link rel="Shortcut Icon" href="/favicon.ico" />
<!--[if lt IE 9]>
<script type="text/javascript" src="<{$smarty.const.__STATIC__}>lib/html5shiv.js"></script>
<script type="text/javascript" src="<{$smarty.const.__STATIC__}>lib/respond.min.js"></script>
<![endif]-->
<link rel="stylesheet" type="text/css" href="<{$smarty.const.__STATIC__}>static/h-ui/css/H-ui.min.css" />
<link rel="stylesheet" type="text/css" href="<{$smarty.const.__STATIC__}>static/h-ui.admin/css/H-ui.admin.css" />
<link rel="stylesheet" type="text/css" href="<{$smarty.const.__STATIC__}>lib/Hui-iconfont/1.0.8/iconfont.css" />
<link rel="stylesheet" type="text/css" href="<{$smarty.const.__STATIC__}>static/h-ui.admin/skin/default/skin.css" id="skin" />
<link rel="stylesheet" type="text/css" href="<{$smarty.const.__STATIC__}>static/h-ui.admin/css/style.css" />
<!--[if IE 6]>
<script type="text/javascript" src="<{$smarty.const.__STATIC__}>lib/DD_belatedPNG_0.0.8a-min.js" ></script>
<script>DD_belatedPNG.fix('*');</script>
<![endif]-->
<title>仿腾讯官网</title>

</head>
<!--_footer 作为公共模版分离出去-->
<script type="text/javascript" src="<{$smarty.const.__STATIC__}>lib/jquery/1.9.1/jquery.min.js"></script> 
<script type="text/javascript" src="<{$smarty.const.__STATIC__}>lib/layer/2.4/layer.js"></script>
<script type="text/javascript" src="<{$smarty.const.__STATIC__}>static/h-ui/js/H-ui.min.js"></script>
<script type="text/javascript" src="<{$smarty.const.__STATIC__}>static/h-ui.admin/js/H-ui.admin.js"></script> <!--/_footer 作为公共模版分离出去-->


<!-- 这是js写的日历插件,也剪切过来 -->
<script type="text/javascript" src="<{$smarty.const.__STATIC__}>lib/My97DatePicker/4.8/WdatePicker.js"></script> 



<script type="text/javascript" ">


/*弹出窗口 - 全屏*/
function show_window_full(title,url){
    var index = layer.open({
        type: 2,
        title: title,
        content: url
    });
    layer.full(index);
}



/*弹出窗口 - 非全屏*/
function show_window(title,url,w,h){
    layer_show(title,url,w,h);
}

</script> 



\color{rgba(254, 67, 101, .8)}{在news\_category.html页面给添加分类一个点击事件}

\color{rgba(254, 67, 101, .8)}{点击按钮弹出半屏窗口}

image.png

\color{rgba(254, 67, 101, .8)}{此时,再建一个页面news\_category\_add.php页面做添加分类使用}

\color{rgba(254, 67, 101, .8)}{还是先把初始化文件和数据分配(url)写好}

require_once('init.php');
$smarty->display($tpl_name);

\color{rgba(254, 67, 101, .8)}{同样的,有php,就有html页面}
\color{rgba(254, 67, 101, .8)}{在templates→admin下建news\_category\_add.html页面}

\color{rgba(254, 67, 101, .8)}{将模板中添加管理员页面的框架代码复制过来}
\color{rgba(254, 67, 101, .8)}{删掉头文件,引入之前剪切出去的公共头部文件}

<{include file="header.html"}>
image.png

\color{rgba(254, 67, 101, .8)}{JS部分也是作为公共模板分离到header.html页面去}
\color{rgba(254, 67, 101, .8)}{之前的页面已经分离过同样的了,现在直接删掉就可以了}

<!--_footer 作为公共模版分离出去--> 
<script type="text/javascript" src="lib/jquery/1.9.1/jquery.min.js"></script> 
<script type="text/javascript" src="lib/layer/2.4/layer.js"></script>
<script type="text/javascript" src="static/h-ui/js/H-ui.min.js"></script> 
<script type="text/javascript" src="static/h-ui.admin/js/H-ui.admin.js"></script> 
<!--/_footer 作为公共模版分离出去-->

\color{rgba(254, 67, 101, .8)}{这是验证规则,也拿到公共模板}
\color{rgba(254, 67, 101, .8)}{给模板js加上常量验证规则(登录验证)}

<script type="text/javascript" src="<{$smarty.const.__STATIC__}>lib/jquery.validation/1.14.0/jquery.validate.js"></script> 
<script type="text/javascript" src="<{$smarty.const.__STATIC__}>lib/jquery.validation/1.14.0/validate-methods.js"></script> 
<script type="text/javascript" src="<{$smarty.const.__STATIC__}>lib/jquery.validation/1.14.0/messages_zh.js"></script> 

\color{rgba(254, 67, 101, .8)}{建立好这个页面之后,就要开始建表了,把管理员注册信息存到数据表中}
\color{rgba(254, 67, 101, .8)}{新建数据表:news_category}
\color{rgba(254, 67, 101, .8)}{字段为:ID、name、sort、is\_show}

image.png image.png image.png

\color{rgba(254, 67, 101, .8)}{将之前模板的添加管理员账号的页面改成显示信息的页面}


<{include file="header.html"}>
<body>
<article class="page-container">
    <form class="form form-horizontal" id="form-admin-add">
    <div class="row cl">
        <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>名称:</label>
        <div class="formControls col-xs-8 col-sm-9">
            <input type="text" class="input-text" value=""  name="name">
        </div>
    </div>
    
    <div class="row cl">
        <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>显示:</label>
        <div class="formControls col-xs-8 col-sm-9 skin-minimal">
            <div class="radio-box">
                <input name="is_show" type="radio" id="show-1" value="1" checked>
                <label for="sex-1">显示</label>
            </div>
            <div class="radio-box">
                <input type="radio" id="show-2" name="is_show" value="0">
                <label for="show-2">隐藏</label>
            </div>
        </div>
    </div>
    <div class="row cl">
        <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>排序:</label>
        <div class="formControls col-xs-8 col-sm-9">
            <input type="text" class="input-text" value="" name="sort">
        </div>
    </div>
    

    <div class="row cl">
        <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
            <input class="btn btn-primary radius" type="submit" value="&nbsp;&nbsp;提交&nbsp;&nbsp;">
        </div>
    </div>
    </form>
</article>



<script type="text/javascript">
$(function(){
    $('.skin-minimal input').iCheck({
        checkboxClass: 'icheckbox-blue',
        radioClass: 'iradio-blue',
        increaseArea: '20%'
    });
    
    $("#form-admin-add").validate({
        rules:{
            adminName:{
                required:true,
                minlength:4,
                maxlength:16
            },
            password:{
                required:true,
            },
            password2:{
                required:true,
                equalTo: "#password"
            },
            sex:{
                required:true,
            },
            phone:{
                required:true,
                isPhone:true,
            },
            email:{
                required:true,
                email:true,
            },
            adminRole:{
                required:true,
            },
        },
        onkeyup:false,
        focusCleanup:true,
        success:"valid",
        submitHandler:function(form){
            $(form).ajaxSubmit({
                type: 'post',
                url: "xxxxxxx" ,
                success: function(data){
                    layer.msg('添加成功!',{icon:1,time:1000});
                },
                error: function(XmlHttpRequest, textStatus, errorThrown){
                    layer.msg('error!',{icon:1,time:1000});
                }
            });
            var index = parent.layer.getFrameIndex(window.name);
            parent.$('.btn-refresh').click();
            parent.layer.close(index);
        }
    });
});
</script> 
<!--/请在上方写此页面业务相关的脚本-->
</body>
</html>
image.png

\color{rgba(254, 67, 101, .8)}{修改下方的必填选项和ajax传输内容:}


<{include file="header.html"}>
<body>
<article class="page-container">
    <form class="form form-horizontal" id="form-admin-add">
    <div class="row cl">
        <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>名称:</label>
        <div class="formControls col-xs-8 col-sm-9">
            <input type="text" class="input-text" value=""  name="name">
        </div>
    </div>
    
    <div class="row cl">
        <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>显示:</label>
        <div class="formControls col-xs-8 col-sm-9 skin-minimal">
            <div class="radio-box">
                <input name="is_show" type="radio" id="show-1" value="1" checked>
                <label for="sex-1">显示</label>
            </div>
            <div class="radio-box">
                <input type="radio" id="show-2" name="is_show" value="0">
                <label for="show-2">隐藏</label>
            </div>
        </div>
    </div>
    <div class="row cl">
        <label class="form-label col-xs-4 col-sm-3"><span class="c-red">*</span>排序:</label>
        <div class="formControls col-xs-8 col-sm-9">
            <input type="text" class="input-text" value="" name="sort">
        </div>
    </div>
    

    <div class="row cl">
        <div class="col-xs-8 col-sm-9 col-xs-offset-4 col-sm-offset-3">
            <input class="btn btn-primary radius" type="submit" value="&nbsp;&nbsp;提交&nbsp;&nbsp;">
        </div>
    </div>
    </form>
</article>



<script type="text/javascript">
$(function(){
    $('.skin-minimal input').iCheck({
        checkboxClass: 'icheckbox-blue',
        radioClass: 'iradio-blue',
        increaseArea: '20%'
    });
    
    $("#form-admin-add").validate({
        rules:{
            name:{
                required:true,
            },
        },
        message:{
            name:{
                required:'分类名称必须填写',
            },
        },
        onkeyup:false,
        focusCleanup:true,
        success:"valid",
        submitHandler:function(form){
            // ajax提交:
            $(form).ajaxSubmit({
                type: 'post',
                url: "index.php?m=admin&c=news_category_add" ,// 提交给谁
                success: function(data){
                    layer.msg('添加成功!',{icon:1,time:1000});
                },
                error: function(XmlHttpRequest, textStatus, errorThrown){
                    layer.msg('error!',{icon:1,time:1000});
                }
            });
            // var index = parent.layer.getFrameIndex(window.name);
            // parent.$('.btn-refresh').click();
            // parent.layer.close(index);
        }
    });
});
</script> 
<!--/请在上方写此页面业务相关的脚本-->
</body>
</html>

\color{rgba(254, 67, 101, .8)}{之后在mews\_category\_add.php页面进行处理}

<?php
    require_once('init.php');
    if( !empty($_POST)){
        echo 111;//ajax 异步传输
    }else{
        $smarty->display($tpl_name);
    }
    
?>

\color{rgba(254, 67, 101, .8)}{ajax异步传输:}
\color{rgba(254, 67, 101, .8)}{提交之后,页面没有刷新,但是确实提交了数据:}

image.png

\color{rgba(254, 67, 101, .8)}{右下角显示正常}

name: 111
is_show: 1
sort: 1

image.png

\color{rgba(254, 67, 101, .8)}{在news\_category\_asdd.php页面接收这三个值并写入数据库}
\color{rgba(254, 67, 101, .8)}{测试有没有接收到:}

<?php
    require_once('init.php');
    if( !empty($_POST)){
        //在这里接收html页面传过来的三个值
        $name = $_POST['name'];
        $is_show = $_POST['is_show'];
        //这个值有默认值,所以判断一下
        //传值就使用传过来的值,空值就使用默认值0
        $sort = !empty($_POST['sort'])?intval($_POST['sort']):0;
        
        //接收到上面出递过来的值之后,用sql语句将数据写入表中
        $sql = "insert into news_category(name, is_show, sort) values ('$name','$is_show', '$sort')";

        echo $sql;
    }else{
        $smarty->display($tpl_name);
    }
    
?>
image.png

\color{rgba(254, 67, 101, .8)}{在news\_category\_add.html页面用JS获取用操作}
\color{rgba(254, 67, 101, .8)}{并将数据传递给业务处理页面news\_category\_add.php}


<script type="text/javascript">
$(function(){
    $('.skin-minimal input').iCheck({
        checkboxClass: 'icheckbox-blue',
        radioClass: 'iradio-blue',
        increaseArea: '20%'
    });
    
    $("#form-admin-add").validate({
        rules:{
            name:{
                required:true,
            },
        },
        message:{
            name:{
                required:'分类名称必须填写',
            },
        },
        onkeyup:false,
        focusCleanup:true,
        success:"valid",
        submitHandler:function(form){
            // ajax提交:
            $(form).ajaxSubmit({
                type: 'post',
                url: "index.php?m=admin&c=news_category_add" ,// 提交给谁
                success: function(data){
                    if(data == 1){
                        //time:2000这个函数弹出的弹窗默认不会自动关闭
                        //设置时间就是自动关闭提示信息的时间
                        layer.msg('添加成功!',{icon:1,time:2000});

                        //视频中这里不显示弹窗提示,因为程序执行时间太短,所以需要加定时器
                        //但是自己的是显示的
                        //这个函数表示:前面是要做的事,后面设置时间为2秒
                        //setTimeout(function(){},2000);
                        setTimeout(function(){
                        //如果添加成功,在提示成功之后,关闭当前窗口
                        //并刷新父级窗口,显示新添加信息
                        //逻辑:程序自身无法杀自身,只能通过其他程序
                        //所以这里要先找到他的父级,再刷新父级,再通过父级关闭它
                        //之所以刷新在中间,而不是先关闭再刷新
                        //是因为关闭了它自己就没有子级父级的概念了
                        var index = parent.layer.getFrameIndex(window.name);
                        parent.location.reload();
                        parent.layer.close(index);
                        },2000);
                    }else{
                        layer.msg('添加失败!',{icon:2,time:2000});// 2000表示提示信息留存时间
                    }
                },
                error: function(XmlHttpRequest, textStatus, errorThrown){
                    layer.msg('error!',{icon:1,time:1000});
                }
            });
        }
    });
});
</script> 

\color{rgba(254, 67, 101, .8)}{然后通过调用这个数据库查询函数并返回值}
\color{rgba(254, 67, 101, .8)}{因为是异步操作,所以还需要在news\_category\_add.php进行判断是否成功}

<?php
    require_once('init.php');
    if( !empty($_POST)){
        //在这里接收html页面传过来的三个值
        $name = $_POST['name'];
        $is_show = $_POST['is_show'];
        //这个值有默认值,所以判断一下
        //传值就使用传过来的值,空值就使用默认值0
        $sort = !empty($_POST['sort'])?intval($_POST['sort']):0;
        
        //接收到上面出递过来的值之后,用sql语句将数据写入表中
        $sql = "insert into news_category(name, is_show, sort) values ('$name','$is_show', '$sort')";

        //使用封装好的操作函数库的查询函数调用它,将上面的数据库语言作为参数传给函数
        $ret = execute($sql);
        //因为是异步操作,所以查询完了之后不能直接跳转页面,需要进行判定
        //然后在news_category_add.html页面接收值
        if( $ret !== false){
            echo 1;
        }else{
            echo 0;
        }

    }else{
        $smarty->display($tpl_name);
    }
    
?>

\color{rgba(254, 67, 101, .8)}{添加一条分类,成功之后跳自动转到父级页面}

image.png image.png

\color{rgba(254, 67, 101, .8)}{写入成功之后,还要显示在页面上}
\color{rgba(254, 67, 101, .8)}{先在news\_category.php页面查询数据并传值}

<?php
    require_once('init.php');
    //分类数据添加完成之后,需要显示
    //先查询数据表,然后将数据分配出去,在news_category.html页面接收
    //排序按照sort排序,如果sort都是一样的,就按id降序排列
    $sql = "select * from news_category order by sort, id desc";
    $list = get_all($sql);
    $smarty->assign('list', $list);
    $smarty->display($tpl_name);
?>

\color{rgba(254, 67, 101, .8)}{然后在news\_category.html页面接收值并显示}

<{include file="header.html"}>
<body>
<nav class="breadcrumb"><i class="Hui-iconfont">&#xe67f;</i> 首页 <span class="c-gray en">&gt;</span> 新闻中心 <span class="c-gray en">&gt;</span> 新闻分类 <a class="btn btn-success radius r" style="line-height:1.6em;margin-top:3px" href="javascript:location.replace(location.href);" title="刷新" ><i class="Hui-iconfont">&#xe68f;</i></a></nav>
<div class="page-container">
    <div class="cl pd-5 bg-1 bk-gray"> <span class="l"><a href="javascript:;" onclick="datadel()" class="btn btn-danger radius"><i class="Hui-iconfont">&#xe6e2;</i> 批量删除</a> <a class="btn btn-primary radius"  onclick="show_window('添加分类', 'index.php?m=admin&c=news_category_add')" href="javascript:;"><i class="Hui-iconfont">&#xe600;</i> 添加分类</a></span> <span class="r">共有数据:<{$count}> 条</span> </div>
    <div class="mt-20">
        <table class="table table-border table-bordered table-bg table-hover table-sort table-responsive">
            <thead>
                <tr class="text-c">
                    <th width="25"><input type="checkbox" name="" value=""></th>
                    <th width="80">ID</th>
                    <th width="80">分类</th>
                    <th width="80">排序</th>
                    <th width="60">显示</th>
                    <th width="60">操作</th>
                </tr>
            </thead>
            <tbody>


                <{foreach $list as $v}>
                <!-- 把数组中的值循环赋值,显示在表格中 -->
                <tr class="text-c">
                    <td><input type="checkbox" value="" name=""></td>
                    <td> <{$v.id}>   </td>
                    <td> <{$v.name}> </td>
                    <td> <{$v.sort}> </td>

                    <!-- 判断是否显示 -->
                    <td class="td-status">
                        <{if $v.is_show == 1}>
                        <span class="label label-success radius">显示</span>
                        <{else}>
                        <span class="label label-danger radius">隐藏</span>
                        <{/if}>
                    </td>
                    

                    <td class="f-14 td-manage"><a style="text-decoration:none" onClick="article_stop(this,'10001')" href="javascript:;" title="下架"><i class="Hui-iconfont">&#xe6de;</i></a> <a style="text-decoration:none" class="ml-5" onClick="article_edit('资讯编辑','article-add.html','10001')" href="javascript:;" title="编辑"><i class="Hui-iconfont">&#xe6df;</i></a> <a style="text-decoration:none" class="ml-5" onClick="article_del(this,'10001')" href="javascript:;" title="删除"><i class="Hui-iconfont">&#xe6e2;</i></a></td>
                </tr>
                <{/foreach}>
            </tbody>
        </table>
    </div>
</div>


<!--请在下方写此页面业务相关的脚本-->


<script type="text/javascript">

/*资讯-删除*/
function article_del(obj,id){
    layer.confirm('确认要删除吗?',function(index){
        $.ajax({
            type: 'POST',
            url: '',
            dataType: 'json',
            success: function(data){
                $(obj).parents("tr").remove();
                layer.msg('已删除!',{icon:1,time:1000});
            },
            error:function(data) {
                console.log(data.msg);
            },
        });     
    });
}

</script> 
</body>
</html>
image.png

\color{rgba(254, 67, 101, .8)}{右上角显示的共有多少条数据要在news\_category.php中写}
\color{rgba(254, 67, 101, .8)}{在sql中查询,然后用smarty分配到html页面}

<?php
    require_once('init.php');
    //分类数据添加完成之后,需要显示
    //先查询数据表,然后将数据分配出去,在news_category.html页面接收
    //排序按照sort排序,如果sort都是一样的,就按id降序排列
    $sql = "select * from news_category order by sort, id desc";
    $list = get_all($sql);
    $smarty->assign('list', $list);
    //没有分页的情况下,可以用count获取共有多少列数据
    //在news_category.html页面用<{$count}>接收显示
    $smarty->assign('count',count($list));
    $smarty->display($tpl_name);
?>

\color{rgba(254, 67, 101, .8)}{在news\_category.html页面接收}

<span class="r">共有数据:<{$count}> 条</span>
image.png

相关文章

网友评论

      本文标题:开发企业网站6 -- 后台功能划分

      本文链接:https://www.haomeiwen.com/subject/cefeuctx.html