如何在 CodeIgniter 中使用复选框输入多个值?

How to input multiple value with checkbox in CodeIgniter?

我已经准备好要输入数据库的表单,但专门针对多个复选框。我在解决方案中发现了类似的情况,但在我使用的算法中却没有发现

这是我的控制器

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>

这确实阻碍了我的项目,希望有人能提供帮助

您可以使用它来获取 fasilitas 作为数组:

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

为了让您将所有选中的复选框存储在数据库中,请编写此代码。

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

然后存储$fasilitas到db.

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

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

希望对您有所帮助:)

如果您可以将 fasilitas 作为字符串保存在您的数据库中。然后你可以用逗号分隔内爆 fasilitas 数组,如下所示:

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

它会存储在后端(数据库)类似的东西。

Proyektor,Papan Tulis

我希望这对你有用。

您也可以使用以下行:

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