后盾网-CI框架实例教程-马振宇 - 学习笔记(5)

第五节视频:

  实例操作文章与栏目相关表单验证:

    表单验证操作:application/controllers/admin/article.php

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/10/7
 * Time: 9:08
 */
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Article extends CI_Controller{

    //发表模板显示
    public function send_article(){
        //加载表单验证辅助函数
        $this ->load ->helper('form');
        $this ->load ->view('admin/article.html');
    }

    //发表文章动作
    public  function send(){
        //载入表单类
        $this ->load ->library('form_validation');
        //配置规则
        $this ->form_validation ->set_rules('title','文章标题','required|min_length[5]');//标题不能为空,至少为5个
        $this ->form_validation ->set_rules('type','类型','required|integer');//类型不能为空,保存在数据库里为整数;
        $this ->form_validation ->set_rules('cid','栏目','integer');//保存在数据库里为整数;
        $this ->form_validation ->set_rules('info','摘要','required|max_length[155]');
        $this ->form_validation ->set_rules('content','内容','reguired|max_length[2000]');
        //验证规则
        $status = $this ->form_validation ->run();

        if($status){
            echo '数据库操作';
        }else{
            $this ->load ->helper('form');
            $this ->load ->view('admin/article.html');
        }


    }
}

相对应的html页面:application/views/admin/article.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="<?php echo base_url().'style/admin/css/public.css'?>">
    <title>Title</title>
</head>
<body>
<form action="<?php echo site_url('/admin/article/send')?>" method="post" enctype="multipart/form-data">
    <table class = "table">
        <tr>
            <td colspan="10" class="th">发表文章</td>
        </tr>
        <tr>
            <td>标题</td>
            <td><input type="text" name="title" value="<?php echo set_value('title') ?>">
                <?php echo form_error('title','<span>','</td>') ?>
            </td>
        </tr>
        <tr>
            <td>类型</td>
            <td>
                <input type="radio" name="type" value="0" <?php echo set_radio('type','0','TRUE') ?> > 普通
                <input type="radio" name="type" value="1" <?php echo set_radio('type','1') ?>> 热门
            </td>
        </tr>
        <tr>
            <td>栏目</td>
            <td>
                <select name="cid" id="">
                    <option value="1" <?php echo set_select('cid','1','TRUE') ?>>情感</option>
                    <option value="2" <?php echo set_select('cid','2') ?>>生活</option>
                </select>
            </td>
        </tr>
        <tr>
            <td>缩略图</td>
            <td>
                <input type="file">
            </td>
        </tr>
        <tr>
            <td>摘要</td>
            <td>
                <textarea name="info" id="" style="width: 550px;height: 160px;"><?php echo set_value('info') ?></textarea>
                <?php echo form_error('info','<span>','</span>')?>
            </td>
        </tr>
        <tr>
            <td>内容</td>
            <td>
                <textarea name="content" id="" style="width: 550px;height: 160px;"><?php echo set_value('content')?></textarea>
                <?php echo form_error('content','<span>','</span>')?>
            </td>
        </tr>
        <tr>
            <td colspan="10"><input type="submit" class="input_button" value="发布"></td>
        </tr>

    </table>
</form>
</body>
</html>

==========================

如何设置编辑和发表共用这一套规则:

  1、在application/config/下新建文件名为:form_validation.php(必须是这个名字)

  2、写入:

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/10/8
 * Time: 8:11
 */

$config = array(
    'article' => array(
        array(
            'field' => 'title',
            'label' => '标题',
            'rules' => 'required|min_length[5]'
        ),
        array(
            'field' => 'type',
            'label' => '类型',
            'rules' => 'required|integer'
        ),
        array(
            'field' => 'cid',
            'label' => '栏目',
            'rules' => 'integer'
        ),
        array(
            'field' => 'info',
            'label' => '摘要',
            'rules' => 'required|max_length[155]'
        ),
        array(
            'field' => 'content',
            'label' => '内容',
            'rules' => 'required|max_length[2000]'
        )
    ),
);

3、在application/controllers/admin/article.php 中修改代码,把表单验证规则设置为公共规则:

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/10/7
 * Time: 9:08
 */
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Article extends CI_Controller{

    //发表模板显示
    public function send_article(){
        //加载表单验证辅助函数
        $this ->load ->helper('form');
        $this ->load ->view('admin/article.html');
    }

    //发表文章动作
    public  function send(){
        //载入表单类
        $this ->load ->library('form_validation');
//        //配置规则
//        $this ->form_validation ->set_rules('title','文章标题','required|min_length[5]');//标题不能为空,至少为5个
//        $this ->form_validation ->set_rules('type','类型','required|integer');//类型不能为空,保存在数据库里为整数;
//        $this ->form_validation ->set_rules('cid','栏目','integer');//保存在数据库里为整数;
//        $this ->form_validation ->set_rules('info','摘要','required|max_length[155]');
//        $this ->form_validation ->set_rules('content','内容','reguired|max_length[2000]');
        //验证规则
        $status = $this ->form_validation ->run('article');

        if($status){
            echo '数据库操作';
        }else{
            $this ->load ->helper('form');
            $this ->load ->view('admin/article.html');
        }


    }
}

====================================================================================

在application/controllers/admin/article.php控制器中添加:编辑文章方法、编辑动作方法

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/10/7
 * Time: 9:08
 */
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Article extends CI_Controller{

    //发表模板显示
    public function send_article(){
        //加载表单验证辅助函数
        $this ->load ->helper('form');
        $this ->load ->view('admin/article.html');
    }

    //发表文章动作
    public  function send(){
        //载入表单类
        $this ->load ->library('form_validation');
//        //配置规则
//        $this ->form_validation ->set_rules('title','文章标题','required|min_length[5]');//标题不能为空,至少为5个
//        $this ->form_validation ->set_rules('type','类型','required|integer');//类型不能为空,保存在数据库里为整数;
//        $this ->form_validation ->set_rules('cid','栏目','integer');//保存在数据库里为整数;
//        $this ->form_validation ->set_rules('info','摘要','required|max_length[155]');
//        $this ->form_validation ->set_rules('content','内容','reguired|max_length[2000]');
        //验证规则
        $status = $this ->form_validation ->run('article');

        if($status){
            echo '数据库操作';
        }else{
            $this ->load ->helper('form');
            $this ->load ->view('admin/article.html');
        }


    }

    //编辑文章
    public function editor_article(){
        $this ->load ->helper('form');
        $this ->load ->view('admin/editor_article.html');
    }
    //编辑动作
    public function editor(){
        $this ->load ->library('form_validation');
        $status = $this ->form_validation ->run('article');
        if($status){
            echo '数据库操作';
        }else{
            $this ->load ->helper('form');
            $this ->load ->view('admin/editor_article.html');
        }
    }

}

相对应的html页面:在application/views/admin下新建editor_article.html,代码如下:

  

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="<?php echo base_url().'style/admin/css/public.css'?>">
    <title>Title</title>
</head>
<body>
<form action="<?php echo site_url('/admin/article/editor')?>" method="post" enctype="multipart/form-data">
    <table class = "table">
        <tr>
            <td colspan="10" class="th">编辑文章</td>
        </tr>
        <tr>
            <td>标题</td>
            <td><input type="text" name="title" value="<?php echo set_value('title') ?>">
                <?php echo form_error('title','<span>','</td>') ?>
            </td>
        </tr>
        <tr>
            <td>类型</td>
            <td>
                <input type="radio" name="type" value="0" <?php echo set_radio('type','0','TRUE') ?> > 普通
                <input type="radio" name="type" value="1" <?php echo set_radio('type','1') ?>> 热门
            </td>
        </tr>
        <tr>
            <td>栏目</td>
            <td>
                <select name="cid" id="">
                    <option value="1" <?php echo set_select('cid','1','TRUE') ?>>情感</option>
                    <option value="2" <?php echo set_select('cid','2') ?>>生活</option>
                </select>
            </td>
        </tr>
        <tr>
            <td>缩略图</td>
            <td>
                <input type="file">
            </td>
        </tr>
        <tr>
            <td>摘要</td>
            <td>
                <textarea name="info" id="" style="width: 550px;height: 160px;"><?php echo set_value('info') ?></textarea>
                <?php echo form_error('info','<span>','</span>')?>
            </td>
        </tr>
        <tr>
            <td>内容</td>
            <td>
                <textarea name="content" id="" style="width: 550px;height: 160px;"><?php echo set_value('content')?></textarea>
                <?php echo form_error('content','<span>','</span>')?>
            </td>
        </tr>
        <tr>
            <td colspan="10"><input type="submit" class="input_button" value="发布"></td>
        </tr>

    </table>
</form>
</body>
</html>

 

===================================================================================

1、在application/controllers/admin下新建栏目管理控制器category.php:

  在application/views/admin下新建html页面add_cate.html:

  需在后台首页中引入新建模板add_cate.html;<?php echo site_url('admin/category/add_cate')?>

       将验证写入到application/config/form_validation.php里面;

  编辑栏目:在application/views/admin下新建html页面editor_cate.html

  在category.php控制器中写入编辑栏目方法:

  附代码:application/controllers/admin/category.php栏目控制器:

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/10/8
 * Time: 12:03
 */

if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Category extends CI_Controller{

    //添加栏目
    public function add_cate(){
        $this ->load ->helper('form');
        $this ->load ->view('admin/add_cate.html');
    }

    // 添加动作
    public function add(){
        //载入表单验证类库
        $this ->load ->library('form_validation');
        $status = $this ->form_validation ->run('cate');

        if($status){
            echo '数据库操作';
        }else{
            $this ->load ->helper('form');
            $this ->load ->view('admin/add_cate.html');
        }

    }

    //编辑栏目
    public function editor_cate(){
        $this ->load ->helper('form');
        $this ->load ->view('/admin/editor_cate.html');

    }

    //编辑栏目动作
    public function editor(){
        //载入表单验证类库
        $this ->load ->library('form_validation');
        $status = $this ->form_validation ->run('cate');

        if($status){
            echo '数据库操作';
        }else{
            $this ->load ->helper('form');
            $this ->load ->view('admin/editor_cate.html');
        }

    }


}

附code:application/views/admin/add_cate.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="<?php echo base_url('style/admin/css/public.css')?>">
    <title>Title</title>
</head>
<body>
<form action="<?php echo site_url('/admin/category/add')?>" method="post">
    <table class="table">
        <tr>
            <td class="th" colspan="10">添加栏目</td>
        </tr>
        <tr>
            <td>栏目名称</td>
            <td><input type="text" name="cname" value="<?php echo set_value('cname')?>">
                <?php echo form_error('cname','<span>','</span>')?></td>
        </tr>
        <tr>
            <td colspan="10"><input type="submit" value="添加" class="input_button"></td>
        </tr>
    </table>
</form>
</body>
</html>

附code:application/views/admin/editor_cate.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="<?php echo base_url('style/admin/css/public.css')?>">
    <title>Title</title>
</head>
<body>
<form action="<?php echo site_url('/admin/category/editor')?>" method="post">
    <table class="table">
        <tr>
            <td class="th" colspan="10">编辑栏目</td>
        </tr>
        <tr>
            <td>栏目名称</td>
            <td><input type="text" name="cname" value="<?php echo set_value('cname')?>">
                <?php echo form_error('cname','<span>','</span>')?></td>
        </tr>
        <tr>
            <td colspan="10"><input type="submit" value="添加" class="input_button"></td>
        </tr>
    </table>
</form>
</body>
</html>

附code:application/config/form_validation.php:公共表单验证规则:

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/10/8
 * Time: 8:11
 */

$config = array(
    'article' => array(
        array(
            'field' => 'title',
            'label' => '标题',
            'rules' => 'required|min_length[5]'
        ),
        array(
            'field' => 'type',
            'label' => '类型',
            'rules' => 'required|integer'
        ),
        array(
            'field' => 'cid',
            'label' => '栏目',
            'rules' => 'integer'
        ),
        array(
            'field' => 'info',
            'label' => '摘要',
            'rules' => 'required|max_length[155]'
        ),
        array(
            'field' => 'content',
            'label' => '内容',
            'rules' => 'required|max_length[2000]'
        )
    ),
    'cate' => array(
        array(
            'field' => 'cname',
            'label' => '栏目名称',
            'rules' => 'required|max_length[20]'
        ),
    ),
);

 

posted @ 2017-10-07 12:33  一纸流年  阅读(280)  评论(0编辑  收藏  举报