Как ввести несколько значений с флажком в CodeIgniter? - PullRequest
1 голос
/ 19 сентября 2019

Я подготовил форму для ввода в базу данных, но специально для нескольких флажков.Я нашел похожий случай с решением, но не с алгоритмом, который я использую

Здесь это мой контроллер

class Ruang extends CI_Controller {

    public function __construct(){
        parent::__construct();
        $this->load->model("m_ruang");
        $this->load->library('form_validation');
        if($this->session->userdata('status') != "login"){
            redirect(base_url("login"));
        }
    }

    public function index()
    {
        $data["ruang"] = $this->m_ruang->getAll();
        $this->load->view('admin/ruang/index.php', $data);
    }

    public function add()
    {
        $ruang = $this->m_ruang;
        $validation = $this->form_validation;
        $validation->set_rules($ruang->rules());

        if ($validation->run()) {
            $ruang->save();
            $this->session->set_flashdata('success', 'Berhasil ditambahkan');
        }   

        $this->load->view("admin/ruang/add_ruang");
    }

Здесь это мои модели

class M_ruang extends CI_Model
{
    private $_table = "ruang";

    public $id_ruang;
    public $ruang;
    public $kapasitas_kuliah;
    public $kapasitas_ujian;
    public $layout;
    public $fasilitas;

public function getAll()
    {
        return $this->db->get($this->_table)->result();
    }

    public function getById($id)
    {
        return $this->db->get_where($this->_table, ["id_ruang" => $id])->row();
    }

    public function save()
    {
        $post = $this->input->post();
        $this->id_ruang = uniqid();
        $this->ruang = $post["ruang"];
        $this->kapasitas_kuliah = $post["kapasitas_kuliah"];
        $this->kapasitas_ujian = $post["kapasitas_ujian"];
        $this->layout = $post["layout"];
        $this->fasilitas = $post["fasilitas"];
        $this->db->insert($this->_table, $this);
    }

а здесь часть вида формы

<form action="<?php base_url('ruang/add') ?>" method="post" enctype="multipart/form-data" >

                    <div class="form-group">
                        <label for="ruang">Nama Ruang</label>
                            <input class="form-control <?php echo form_error('ruang') ? 'is-invalid':'' ?>"
                                type="text" name="ruang" placeholder="Masukkan nama ruangan" />
                        <div class="invalid-feedback">
                            <?php echo form_error('ruang') ?>
                        </div>
                    </div>

                    <div class="form-group">
                        <label for="kapasitas_kuliah">Kapasitas Kuliah</label>
                            <input class="form-control <?php echo form_error('kapasitas_kuliah') ? 'is-invalid':'' ?>"
                                type="number" name="kapasitas_kuliah" min="0" placeholder="Tentukan kapasitas kuliah" />
                        <div class="invalid-feedback">
                            <?php echo form_error('kapasitas_kuliah') ?>
                        </div>
                    </div>

                    <div class="form-group">
                        <label for="kapasitas_ujian">Kapasitas Kuliah</label>
                            <input class="form-control <?php echo form_error('kapasitas_ujian') ? 'is-invalid':'' ?>"
                                type="number" name="kapasitas_ujian" min="0" placeholder="Tentukan kapasitas ujian" />
                        <div class="invalid-feedback">
                            <?php echo form_error('kapasitas_ujian') ?>
                        </div>
                    </div>

                    <div class="form-group">
                        <label for="layout">Layout</label>
                            <input class="form-control" 
                            data-inputmask="'mask': ['99 x 99']" data-mask 
                                type="text" name="layout" placeholder="Tentukan layout ruangan" />
                    </div>

                    <div class="form-group">
                        <label for="fasilitas">Fasilitas Tersedia</label> <br>
                            <input type="checkbox" name="fasilitas[]" value="Proyektor"> Proyektor
                            <br>
                            <input type="checkbox" name="fasilitas[]" value="Papan Tulis"> Papan Tulis
                            <br>
                            <input type="checkbox" name="fasilitas[]" value="Jam Dinding"> Jam Dinding
                            <br>
                            <input type="checkbox" name="fasilitas[]" value="AC"> AC
                            <br>
                            <input type="checkbox" name="fasilitas[]" value="Kipas Angin"> Kipas Angin
                            <br>
                            <input type="checkbox" name="fasilitas[]" value="Tong Sampah"> Tong Sampah
                        <div class="invalid-feedback">
                            <?php echo form_error('fasilitas') ?>
                        </div>
                    </div>

                    <input class="btn btn-success" type="submit" name="btn" value="Save" />
                </form>

Это действительно мешает моему проекту, я надеюсь, что кто-то может помочь

Ответы [ 4 ]

1 голос
/ 28 сентября 2019

Вы также можете использовать следующую строку:

$fasilitas = implode(',', $this->input->post( 'fasilitas' , TRUE ) );

0 голосов
/ 21 сентября 2019

Для того, чтобы вы сохранили все отмеченные ячейки в базе данных, напишите этот код.

$values = $post['fasilitas'];
$fasilitas = "";
 foreach($values as $val)
 {
    $fasilitas .= $val . ", ";
 }

Затем сохраните $fasilitas в дБ.

 $data = array(
               'fasilitas' => $fasilitas,
         );

 $this->db->insert('table_name', $data);

Надеюсь, что это поможет:)

0 голосов
/ 21 сентября 2019

Если вы можете сохранить fasilitas в вашей базе данных в виде строки.Затем вы можете взорвать массив fasilitas с запятой, разделенной, как показано ниже:

$this->fasilitas = implode(',',$post["fasilitas"]);

он будет храниться в серверной части (База данных) как-то так.

Proyektor, Papan Tulis

Надеюсь, это сработает для вас.

0 голосов
/ 20 сентября 2019

Вы можете использовать это, чтобы получить fasilitas как массив:

$fasilitas = $this->input->post('fasilitas'); // Like array('AC','Proyektor','Kipas Angin');
...