codeigniter框架使用笔记,查询功能,搜索功能php版。自己留个记录

控制器Zhaopin.php

<?php

session_start();

class Zhaopin extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->helper(array('form', 'url'));
        $this->load->model('zhaopin_model');
        //引入CI的分页类
        $this->load->library('pagination');
    }

    //默认显示招聘列表页面,默认从第一天数据开始
    public function index($start = 0) {
        //每页显示20条数据
        $per_page = 20;
        //分段取出数据
        $data['content'] = $this->zhaopin_model->getzhaopin($id = NULL, $per_page, $start);
        //获得数据总条目
        $count_all = $this->zhaopin_model->getrow();

        //配置分页参数
        $config['base_url'] = base_url() . 'index.php/zhaopin/index/';
        $config['total_rows'] = $count_all;
        $config['per_page'] = $per_page;
//设置url参数是页数,不是默认的数据条数
//$config['use_page_numbers'] = TRUE;
        $config['full_tag_open'] = '<ul>';
        $config['full_tag_close'] = '</ul>';
        $config['first_link'] = '首页';
        $config['last_link'] = '末页';
        $config['first_tag_open'] = '<li>';
        $config['first_tag_close'] = '</li>';
        $config['last_tag_open'] = '<li>';
        $config['last_tag_close'] = '</li>';
        $config['next_link'] = '&gt;';
        $config['next_tag_open'] = '<li>';
        $config['next_tag_close'] = '</li>';
        $config['prev_link'] = '&lt;';
        $config['prev_tag_open'] = '<li>';
        $config['prev_tag_close'] = '</li>';
        $config['num_tag_open'] = '<li>';
        $config['num_tag_close'] = '</li>';
//这个有点意思,开始没想到直接把class加进来,选中的css样式一直调不好
        $config['cur_tag_open'] = '<li><a class="current">';
        $config['cur_tag_close'] = '</a></li>';
        $config['attributes'] = array('class' => 'myclass');
//根据配置,初始化分页类
        $this->pagination->initialize($config);
//输出分页,优化样式查参考手册
        $data['pagination'] = $this->pagination->create_links();

        //渲染试图输出
        $this->load->view('zhaopin', $data);
    }

    //查看具体一条数据页面
    public function view($id = NULL) {
        $data['content'] = $this->zhaopin_model->getzhaopin($id);
        if (empty($data['content'])) {
            show_404();
        }
        $data['error'] = '';
        $this->load->view('xiangqing', $data);
    }

    //ajax读取数据
    public function search($id = NULL) {
        $data = $this->zhaopin_model->getzhaopin($id);
        //ajax获取结果需要json格式
        echo json_encode($data, JSON_UNESCAPED_UNICODE);
    }

    //搜索功能,带分页
    public function lookingfor($start = 0) {
        //搜索结果页,继续翻页POST值不会传递,选中用session存结果传递,
        //没有if判断还是会由于POST没有值而导致赋值语句出错。
        if ($_POST) {
            $_SESSION['search_type'] = $_POST['search_type'];
            $_SESSION['search_content'] = $_POST['search_content'];
        }
        //设置每页20条
        $per_page = 20;
        //分段取出数据,
        //返回值$data['content']['count']为查询结果数量
        //返回值$data['content']['content']为查询结果数组
        $data['content'] = $this->zhaopin_model->search($_SESSION['search_type'], $_SESSION['search_content'], $per_page, $start);

        //配置分页参数
        $config['base_url'] = base_url() . 'index.php/zhaopin/lookingfor/';
        $config['total_rows'] = $data['content']['count'];
        $config['per_page'] = $per_page;
//设置url参数是页数,不是默认的数据条数
//$config['use_page_numbers'] = TRUE;
        $config['full_tag_open'] = '<ul>';
        $config['full_tag_close'] = '</ul>';
        $config['first_link'] = '首页';
        $config['last_link'] = '末页';
        $config['first_tag_open'] = '<li>';
        $config['first_tag_close'] = '</li>';
        $config['last_tag_open'] = '<li>';
        $config['last_tag_close'] = '</li>';
        $config['next_link'] = '&gt;';
        $config['next_tag_open'] = '<li>';
        $config['next_tag_close'] = '</li>';
        $config['prev_link'] = '&lt;';
        $config['prev_tag_open'] = '<li>';
        $config['prev_tag_close'] = '</li>';
        $config['num_tag_open'] = '<li>';
        $config['num_tag_close'] = '</li>';
//这个有点意思,开始没想到直接把class加进来,选中的css样式一直调不好
        $config['cur_tag_open'] = '<li><a class="current">';
        $config['cur_tag_close'] = '</a></li>';
        $config['attributes'] = array('class' => 'myclass');
//根据配置,初始化分页类
        $this->pagination->initialize($config);
//输出分页,优化样式查参考手册
        $data['pagination'] = $this->pagination->create_links();
        //渲染输出
        $this->load->view('search', $data);
    }

}

模型Zhaopin_model.php

<?php

class Zhaopin_model extends CI_Model {

    public function __construct() {
        parent::__construct();
        $this->load->database();
    }

    //快速读取所有数据
    public function getzhaopin($id = NULL, $per_page = 20, $start = 0) {
        if ($id === NULL) {
            $query = $this->db->get('zhaopin', $per_page, $start);
            return $query->result_array();
        } else {
            $query = $this->db->get_where('zhaopin', array('id' => $id));
            return $query->row_array();
        }
    }

    //搜索带分页
    public function search($search_type, $search_content, $per_page = 20, $start = 0) {
        //手写语句
        // $sql = "SELECT * FROM `zhaopin` WHERE ".$search_type." LIKE "."'%".$search_content."%'";
        //直接得到结果集
        // $query = $this->db->query($sql); 
        //结果集转换为数组形式
        //$query->result_array();
        //使用CI快捷模式,SQL语句引号有点麻烦
        $this->db->like($search_type, $search_content);
        $this->db->limit($per_page, $start);
        $this->db->from('zhaopin');
        $query = $this->db->get();
        $array = $query->result_array();
        //获取查询结果条数
        //有个坑,count_all_results()使用后select会清空,文档说明可以设置第二参数为FALSE,保留select,但测试没成功
        $this->db->like($search_type, $search_content);
        $this->db->from('zhaopin');
        $count = $this->db->count_all_results();
        //返回多个结果,利用数组,在控制器中在数组里提取
        return array('count' => $count, 'content' => $array);
    }

    //获取表行数
    public function getrow() {
        $query = $this->db->count_all('zhaopin');
        return $query;
    }

}

前端view/zhaopin.php

<!doctype html>
<html lang="zh-CN">
    <head>
        <meta charset="UTF-8">
        <title>佳源集团2018年中高层人才招聘</title>
        <link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>resource/css/bootstrap.min.css">
        <link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>resource/css/common.css">
        <script src="<?php echo base_url(); ?>resource/js/jquery-3.3.1.min.js"></script>
    </head>
    <body class="red">
        <div class="container-fluid">
            <h1 align="center">佳源集团2018年中高层人才招聘</h1>
            <div class="pagination"><?php echo $pagination; ?></div>
            <form class="form-inline" action="http://localhost/ci/index.php/zhaopin/lookingfor" method="post">
                <div class="form-group">
                    <label for="input">搜索</label>
                    <select class="form-control" name="search_type">
                        <option name="id" value="id" selected="selected">序号</option>
                        <option name="postion" value="postion">岗位</option>
                        <option name="location" value="location">地点</option>
                        <option name="num" value="num">人数</option>
                        <option name="request" value="request">任职资格</option>
                    </select>
                    <input id="id" type="text" name="search_content" class="form-control" placeholder="搜索内容">
                </div>
                <button type="submit" class="btn btn-default" id="search">搜索</button>
                <button type="button" class="btn btn-default" id="add">添加</button>
            </form>
            <div id="result"></div>
            <div class="add"><p>AJAX内容</p></div>
            <table class="table">
                <tr>
                    <th>序号</th>
                    <th>岗位</th>
                    <th>人数</th>
                    <th>任职资格</th>
                </tr>
                <?php foreach ($content as $item): ?>
                    <tr onclick="window.location = 'http://localhost/ci/index.php/zhaopin/view/<?php echo $item['id']; ?>'">
                        <td><?php echo $item['id']; ?></td>
                        <td><?php echo $item['postion']; ?></td>
                        <td><?php echo $item['num']; ?></td>
                        <td>详情点击</td>
                    </tr>
                <?php endforeach; ?>
            </table>
        </div>
        <script>
            // $("#add").click(function(){
            //     $(".add").html('<h1>添加成功</h1>');
            // });
            // $(document).ready($("#search").click(function(){
            //     var ids = $("#id").val();
            //         $.ajax({
            //             method: "POST",
            //             url: "http://localhost/ci/index.php/zhaopin/search/"+ids,
            //             //data: {"id" : 2},
            //               dataType: 'json',
            //             // dataType:"array",
            //         success:function(e){
            //             //优化:使用ajax选择搜索项,搜索结果成列表,有分页
            //             $(".add").append('<p>序号:'+e.id+'</p><p>岗位:'+e.postion+'</p><p>人数:'+e.num+'</p><p>要求:'+e.request+'</p>');
            //             // alert(e);
            //             // return true;

            //         },
            //         error:function(e){
            //             $(".add").html('<p>fail</p>');
            //             // alert(e);
            //             // return false;
            //         }
            //     })}));
        </script>
    </body>
</html>

前端view/search.php 使用bootstrap框架,资源文件存放在根目录resource下

<!doctype html>
<html lang="zh-CN">
    <head>
        <meta charset="UTF-8">
        <title>佳源集团2018年中高层人才招聘</title>
        <link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>resource/css/bootstrap.min.css">
        <link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>resource/css/common.css">
        <script src="<?php echo base_url(); ?>resource/js/jquery-3.3.1.min.js"></script>
    </head>
    <body class="red">
        <div class="container-fluid">
            <h1 align="center">佳源集团2018年中高层人才招聘</h1>
            <div class="pagination"><?php echo $pagination; ?></div>
            <?php echo "共" . $content['count'] . "条" ?>
            <form class="form-inline" action="<?php echo base_url() ?>/index.php/zhaopin/lookingfor" method="post">
                <div class="form-group">
                    <label for="input">搜索</label>
                    <select class="form-control" name="search_type">
                        <option name="id" value="id" selected="selected">序号</option>
                        <option name="postion" value="postion">岗位</option>
                        <option name="location" value="location">地点</option>
                        <option name="num" value="num">人数</option>
                        <option name="request" value="request">任职资格</option>
                    </select>
                    <input id="id" type="text" name="search_content" class="form-control" placeholder="搜索内容">
                </div>
                <button type="submit" class="btn btn-default" id="search">搜索</button>
                <button type="button" class="btn btn-default" id="add">添加</button>
            </form>
            <div id="result"></div>
            <div class="add"><p>AJAX内容</p></div>
            <table class="table">
                <tr>
                    <th>序号</th>
                    <th>岗位</th>
                    <th>人数</th>
                    <th>任职资格</th>
                </tr>
                <?php foreach ($content['content'] as $item): ?>
                    <tr onclick="window.location = 'http://localhost/ci/index.php/zhaopin/view/<?php echo $item['id']; ?>'">
                        <td><?php echo $item['id']; ?></td>
                        <td><?php echo $item['postion']; ?></td>
                        <td><?php echo $item['num']; ?></td>
                        <td>详情点击</td>
                    </tr>
                <?php endforeach; ?>
            </table>
        </div>
        <script>
            // $("#add").click(function(){
            //     $(".add").html('<h1>添加成功</h1>');
            // });
            // $(document).ready($("#search").click(function(){
            //     var ids = $("#id").val();
            //         $.ajax({
            //             method: "POST",
            //             url: "http://localhost/ci/index.php/zhaopin/search/"+ids,
            //             //data: {"id" : 2},
            //               dataType: 'json',
            //             // dataType:"array",
            //         success:function(e){
            //             //优化:使用ajax选择搜索项,搜索结果成列表,有分页
            //             $(".add").append('<p>序号:'+e.id+'</p><p>岗位:'+e.postion+'</p><p>人数:'+e.num+'</p><p>要求:'+e.request+'</p>');
            //             // alert(e);
            //             // return true;

            //         },
            //         error:function(e){
            //             $(".add").html('<p>fail</p>');
            //             // alert(e);
            //             // return false;
            //         }
            //     })}));
        </script>
    </body>
</html>

前端view/xiangqing.php

<!doctype html>
<html lang="zh-CN">
    <head>
        <meta charset="UTF-8">
        <title>佳源集团2018年中高层人才招聘</title>
        <link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>resource/css/bootstrap.min.css">
        <link rel="stylesheet" type="text/css" href="<?php echo base_url(); ?>resource/css/common.css">
        <script src="<?php echo base_url(); ?>resource/js/jquery-3.3.1.min.js"></script>
        <script>
            $(document).ready(function () {
                $("#submit").click(function () {
                    //alert($("#file").val());
                    if ($("#file").val()) {
                        return true;
                    }
                    return false;
                })
            })
        </script>
    </head>
    <body class="red">
        <div class="container-fluid">
            <h1 align="center">佳源集团2018年中高层人才招聘</h1>
            <h4 align="center"><?php echo $content['id']; ?></h2>
                <h4>招聘岗位</h4>
                <p><?php echo $content['postion']; ?></p>
                <h4>工作地点</h4>
                <p><?php echo $content['location']; ?></p>
                <h4>任职资格</h4>
                <p><?php echo nl2br($content['request']); ?></p>
                <hr />
                <a href="http://www.zjjiayuan.com.cn/apply.html" class="btn btn-primary btn-lg margin" role="button">投递简历</a>
        </div>
    </body>
</html>

样式common.css

h1 {
    font-size: 4rem;
    padding-top: 3rem;
    padding-bottom: 2rem;
}
.center {
    width: 100%;
    text-align: center;
}
.red {
    background-color: rgb(138,32,36);
    color: white;
    font-size: 1.7rem;
}
h4 {
    padding-top: 2rem;
    font-size: 3rem;
}
p{
    font-size: 2.7rem;
}
.margin {
    font-size: 4rem;
    height: 8rem;
    width: 20rem;
    margin: 50px auto;
    display: block;
    color: rgb(138,32,36);
    background-color: white;
    border-color: white;

}
.pagination{
    /* border: 1px solid white;*/

}
.myclass{



}
.pagination ul{
    /*因为使用display:flex;布局子元素margin就居中了,
    以前的布局需要居中必须设置width*/
    margin: 0 auto;



}
.pagination ul li{
    float: left;
    list-style-type: none;
    margin: 0 4px;

}
.pagination ul li a{
    display: block;
    padding: 3px 15px;
    background-color: #fff;
}
.pagination ul li a.current{
    background-color: #4CAF50;
}
.pagination ul li a:hover:not(.current){
    background-color: #ddd;
    text-decoration: none;

}

 

posted @ 2018-03-07 22:35  luwenjie  阅读(222)  评论(0编辑  收藏  举报