Thêm dữ liệu trong CodeIgniter 3x

Bài này giúp các bạn tạo action thêm dữ liệu trong CodeIgniter 3x
  • 09:28 09/10/2016
  • Kỳ Nhân
  • 0 Bình luận
  • 936

Để tạo hành động thêm dữ liệu trong CodeIgniter 3x các bạn cần thực hiện các bước sau:

Vào application/controllers/admin/Groups.php tạo function create với nội dung

public function create() {              
    $this->data['button_title'] = 'Thêm nhóm';       
    if($this->input->post()) {
        $model = [
            'title' => $this->input->post('title'),
            'hide' => $this->input->post('hide'),    
            'create_at' => time(),
        ];
        if($this->db->insert('groups',$model)) {            
            redirect('admin/groups/','refresh');
        }
        else {
            echo $this->db->error();
        }   
    }
    else {
        $this->render('admin/groups/create');
    }
}

Vào application/views/admin/groups tạo 2 file create.phpform.php với nội dung là:

create.php

<?php defined('BASEPATH') OR exit('No direct script access allowed');?>
<div class="container">
    <h1>Thêm nhóm</h1>
    <?php $this->load->view('admin/groups/form'); ?>
</div>

form.php

<?php defined('BASEPATH') OR exit('No direct script access allowed');?>
<div class="box-form">
    <?php echo form_open_multipart('',array('id'=>'form-groups'));?>
    <div class="clearfix"></div>
    <div class="form-group">
        <div class="row">
            <label class="col-sm-12">Hình ảnh</label>
            <div class="col-sm-3">
                <input type="file" accept="image/*" name="picture" />
            </div>
            <div class="col-sm-9">
                <?php if(isset($items) && $items->picture!='') { ?>
                <img src="<?=base_url()?>uploads/<?=(isset($items->picture)) ? $items->picture : ''?>" height="80">
                <?php } ?>                
            </div>
        </div>
    </div>    
    <div class="clearfix"></div>
    <div class="form-group">
        <label>Tên</label>
        <textarea class="form-control area-input" rows="1" name="title"><?=(isset($items)) ? $items->title : ''?></textarea>
    </div>
    <div class="form-group">
        <label>Hiển thị</label>
        <select class="form-control" name="hide">
            <option value="1" <?=(isset($items) && $items->hide==1) ? 'selected="selected"' : '' ?>>Có</option>
            <option value="0" <?=(isset($items) && $items->hide==0) ? 'selected="selected"' : '' ?>>Không</option>
        </select>
    </div>
    <div class="form-group">
        <button type="submit" class="btn btn-success"><?=$button_title?></button>
    </div>
    <?php echo form_close();?>
</div>

Việc tạo 2 file như vậy để khi ta thêm, sửa sài chung file form.php cho đỡ phải viết nhiều file sau này sửa lâu. file create.php sẽ load file form.php.

Ở phần này có sử dụng helper form khi sử dụng hàm form_open, muốn sử dụng được hàm này các bạn phải load helper của CodeIgniter. Do đang làm trong admin nên tốt nhất là load tại class Admin_Controller. Vào application/core/MY_Controller.php sửa function __construct của class Admin_Controller thành

function __construct() {
    parent::__construct();
    $this->load->helper('form');
}

Giờ các bạn vào localhost/ci/admin/groups/create.html thêm dữ liệu là ok.

Phần upload hình ảnh mình chưa nói vì làm từng phần trước cho dễ hiểu. Bài sau sẽ viết tiếp phần thêm hình ảnh.