Insert multiple checkbox data using Codeigniter

Kailash Singh

Insert multiple checkbox data using Codeigniter

Published May 05,2019 by Kailash Singh

4 Comments     19539 Views    


In this tutorial, we are going to learn about how to create Insert multiple checkbox data using Codeigniter.

 

Step 1 :- Create tables in Database.

 

In this step, we are going to create two tables in database.

 

1) Students Table

 

CREATE TABLE `elevenstech`.`students` ( `id` INT NOT NULL AUTO_INCREMENT , `name` VARCHAR(200) NOT NULL , `email` VARCHAR(250) NOT NULL , `phone` VARCHAR(50) NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB;

 

2) Added Student Table

 

CREATE TABLE `elevenstech`.`added_student` ( `id` INT NOT NULL AUTO_INCREMENT , `student_id` INT(11) NOT NULL , PRIMARY KEY (`id`)) ENGINE = InnoDB;

 

Step 2 :- Insert Data in Student Table.

 

INSERT INTO `students` (`id`, `name`, `email`, `phone`) VALUES
(1, 'Kailash Singh', '[email protected]', '8376786284'),
(2, 'Amit Singh', '[email protected]', '8767327272'),
(3, 'Kailash Sharma', '[email protected]', '8376868378'),
(4, 'Siddarth Singh', '[email protected]', '9278297928'),
(5, 'Fari Singh', '[email protected]', '9287973287'),
(6, 'Avdhesh Singh', '[email protected]', '8926836988'),
(7, 'Lokesh Singh', '[email protected]', '9328797389'),
(8, 'Lakhan Verma', '[email protected]', '9289728939'),
(9, 'Manish Singh', '[email protected]', '8973298793'),
(10, 'Lovely Singh', '[email protected]', '9328987393'),
(11, 'Vikram Rana', '[email protected]', '9821797983'),
(12, 'Siddarth Verma', '[email protected]', '8732683233');

 

Step 3 :- Create Model in Models Folder (Student_model.php)

 

In this step we are fetching the data between the two tables Using join query.

 

<?php 

class Student_model extends CI_Model{

	public function student_list()
	{
		return $this->db->select('s.*, as.student_id')
			->from('students as s')
			->join('added_student as as','as.student_id = s.id','left')
		    ->get()
			->result();
	}

}

?>

 

Step 4 :- Create Controller in Controllers Folder (Students.php)

 

In this step, we are going to pass the values from model to view.

 

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Students extends CI_Controller 
{
	public function index()
	{
        $this->load->model('student_model');
        $student_list = $this->student_model->student_list();
		$this->load->view('students',['student_list'=>$student_list]);
	}

}

?>

 

Step 5 :- Create view in views Folder (students.php)

 

In this step, we are creating a table to list all the data and also create a checkbox then we will put the condition in checkbox field to check the data exist in another table or not.

 

like this.

<input type="checkbox" name="student_id[]" value="<?php echo $student->id; ?>" <?php if($student->id == $student->student_id){echo'checked disabled';} ?>>

 

Here is the full code:-

 

In this code, we are also creating a form action to add multiple checkbox data. 

 

<form action="<?php echo base_url(); ?>students/add_selected_student" method="post">
   <button type="submit" name="submit" class="btn btn-danger">Add Selected</button>
       <table class="table table-striped table-bordered" style="width:100%">
          <thead>
             <tr class="btn-primary">
                <th></th>
                <th>S.no.</th>
                <th>Name</th>
                <th>Email</th>
                <th>Phone</th>
              </tr>
          </thead>
          <tbody>
            <?php $i = 1; foreach ($student_list as $student) { ?>
              <tr>
                <td>
                  <input type="checkbox" name="student_id[]" value="<?php echo $student->id; ?>" <?php if($student->id == $student->student_id){echo'checked disabled';} ?>>
                </td>
                <td><?php echo $i; ?></td>
                <td><?php echo $student->name; ?></td>
                <td><?php echo $student->email; ?></td>
                <td><?php echo $student->phone; ?></td>
             </tr>
           <?php $i++; } ?>
        
          </tbody>
        </table>
  </form>

 

Step 6 :- Create Add Multiple Checkbox data query in Controller (Student_model.php)

 

public function add_selected_student()
{
    $student_id = $this->input->post('student_id'); //here i am getting student id from the checkbox

    for ($i=0; $i < sizeof($student_id); $i++) 
    { 
       $data = array('student_id' => $student_id[$i]);
       $this->db->insert('added_student',$data);
    }
    
    $this->session->set_flashdata('msg',"Students details has been added successfully");
    $this->session->set_flashdata('msg_class','alert-success');

    return redirect('students');
}

 

Step 7 :-  Create Success Message in View (students.php)

 

<?php if($error = $this->session->flashdata('msg')){ ?>
    <div class="alert alert-success" id="msg">
         <a href="#" class="close" data-dismiss="alert">&times;</a>
         <strong>Success!</strong> <?php echo  $error; ?>
    </div>
<?php } ?>

 

Hope this will help our developers.

Because we believe Mantra means CodingMantra


4 Comments


Kaliraj K Feb 16, 2020

hi, plz send ur source code to my id: [email protected]. its very thankful to me.

Elevenstech Feb 17, 2020

Please Check your mail

Dharambir Feb 03, 2022

I have two tables, I want to copy  some columns of first table into second table ,firstly by drop down value i fetched view list,then by checked box values I tried to copy into second table  but not success

I have an example in php as such but not in codeligniter

Pls give idea of such type ex. Thanks

 

Elevenstech Feb 04, 2022

Please share your code on my mail ([email protected]). I will check your code :-)