In this tutorial, We will learn to add multiple input fields and submit them to the database with jquery and Codeigniter 3. we can add remove input fields dynamically with jquery and submit them to the database in Codeigniter.
Follow some steps to add and remove fields using jquery and insert data in the database:
Step 1: Download Codeigniter 3
download Codeigniter 3 here is link https://codeigniter.com/download
Step 2: Create Table
We must have one table to insert some records.
CREATE TABLE IF NOT EXISTS `tagslist` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8mb4_unicode_ci AUTO_INCREMENT=24 ;
Step 3: Add Route
create some routes to navigate the pages
application/config/routes.php
<?php
$route['add-more'] = "AddMoreController";
$route['add-more-post']['post'] = "AddMoreController/storePost";
Step 4: Create Controller
create controller and give name as AddMoreController.php
application/controllers/AddMoreController.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class AddMoreController extends CI_Controller {
/**
* Get All Data from this method.
*
* @return Response
*/
public function __construct() {
parent::__construct();
$this->load->database();
}
/**
* Get All Data from this method.
*
* @return Response
*/
public function index()
{
$this->load->view('addMore');
}
/**
* Get All Data from this method.
*
* @return Response
*/
public function storePost()
{
if(!empty($this->input->post('addmore'))){
foreach ($this->input->post('addmore') as $key => $value) {
$this->db->insert('tagslist',$value);
}
}
print_r('Record Added Successfully.');
}
}
Step 5: Create View
create view to show our html form
application/views/addMore.php
<!DOCTYPE html>
<html>
<head>
<title>Dynamically Add or Remove input fields using JQuery & Codeigniter</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<h2 align="center">My Form</h2>
<div class="form-group">
<form name="add_name" method="POST" action="/add-more-post">
<div class="table-responsive">
<table class="table table-bordered" id="dynamic_field">
<tr>
<td><input type="text" name="addmore[][name]" placeholder="Enter your Name" class="form-control name_list" required="" /></td>
<td><button type="button" name="add" id="add" class="btn btn-success">Add More</button></td>
</tr>
</table>
<input type="submit" name="submit" id="submit" class="btn btn-info" value="Submit" />
</div>
</form>
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
var i=1;
$('#add').click(function(){
i++;
$('#dynamic_field').append('<tr id="row'+i+'" class="dynamic-added"><td><input type="text" name="addmore[][name]" placeholder="Enter your Name" class="form-control name_list" required /></td><td><button type="button" name="remove" id="'+i+'" class="btn btn-danger btn_remove">X</button></td></tr>');
});
$(document).on('click', '.btn_remove', function(){
var button_id = $(this).attr("id");
$('#row'+button_id+'').remove();
});
});
</script>
</body>
</html>
Thanks, I hope it will work for you .....