For any queries you can reach us at infovistarindia@gmail.com / WhatsApp us: +919158876092

Update operation using AJAX in CodeIgniter

Introduction

In this example, we will discuss how to update a record or data from the MySQL database using the CodeIgniter.

The UPDATE statement is used to update data in MySQL table

UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value

Note: The WHERE clause specifies which data should be updated. If you omit the WHERE clause, all records will be updated!

Controller: 	User.php		application\controllers\User.php
Model:		User_model.php		application\models\User_model.php
View:		list.php		application\views\list.php
		edit.php		application\views\edit.php

applications/views/list.php

<table width="600" border="1" cellspacing="5" cellpadding="5">
	<tr style="background:#CCC">
		<th>Sr No</th>
		<th>First_name</th>
		<th>Last_name</th>
		<th>Email Id</th>
		<th>Update</th>
	</tr>
	<?php $i=1; foreach($result as $row) { 
		echo "<tr>"; 
		echo "<td>".$i. "</td>"; 
		echo "<td>".$row->first_name."</td>";
		echo "<td>".$row->last_name."</td>"; 
		echo "<td>".$row->email."</td>"; 
		echo "</tr>"; $i++; } ?>
		echo "<td><a href="<?php echo base_url('user/edit'.$row->id) ?>">Edit</a></td>";
</table>

applications/views/edit.php

<html>
<head>
<title>Update user details</title>
</head>
 
<body>
 <?php
  if($result) {
  ?>
	<form method="post" id="update-user-form" action="<?php echo base_url('user/update'); ?>">
		<table width="600" border="1" cellspacing="5" cellpadding="5">
  <tr>
    <td width="230">Enter Your Name </td>
    <td width="329">
	<input type="hidden" name="txtId" value="<?php echo $result->id; ?>"/>
<input type="text" name="txtFirstName" value="<?php echo $result->first_name; ?>"/></td>
  </tr>
  <tr>
    <td>Enter Your Email </td>
    <td><input type="text" name="txtLastName" value="<?php echo $result->last_name; ?>"/></td>
  </tr>
  <tr>
    <td>Enter Your Mobile </td>
    <td><input type="text" name="txtEmail" value="<?php echo $result->email; ?>"/></td>
  </tr>
  <tr>
    <td colspan="2" align="center">
	<input type="submit" name="update" value="Update"/></td>
  </tr>
</table>
	</form>
	<?php } ?>

	<!-- Script -->
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

	<script type="text/javascript">
		$(document).ready(function(){
			$("#update-user-form").submit(function(e) {

				var data = $("#update-user-form").serialize();
				var url = "<?php echo base_url('user/update_user'); ?>";

				// Syntax
				// $(selector).post(URL,data,function(data,status,xhr),dataType);

				$.post(
					url,
					data,
					function(result) {
						alert(result.message);
					},
					'json');
			});
		});
	</script>

</body>
</html>

applications/controllers/User.php

class User extends CI_Controller {

	public function __construct() {
		/*call CodeIgniter's default Constructor*/
		parent::__construct();

		/*load model*/
		$this->load->model('User_model');
	}
	
	public function list() {
		$data['result']	= $this->user_model->list();
		$this->load->view('list', $data);
	}

	public function edit($id) {
		$data['result']	= $this->user_model->get_user($id);
		$this->load->view('list', $data);
	}

	public function update_user() {
		$id		= $this->input->post('txtId');
		$first_name	= $this->input->post('txtLastName');
		$last_name	= $this->input->post('txtLastName');
		$email		= $this->input->post('txtEmail');
		
		$data = [
			'first_name'		=> $first_name,
			'last_name'		=> $last_name,
			'email'			=> $email,
		];

		$result = $this->user_model->update($id, $data);
		if($result) {
			echo json_encode(["message" => "User details are updated successfully."]);
		} else {
			echo json_encode(["message" => "Something went wrong"]);
		}
	}
}

applications/models/User_model.php

class User_model extends CI_Model  {
	/*Select multiple records*/
	function list() {
		$this->db->select([“*"]);
		$this->db->from('user_info');
		$query = $this->db->get();
		return $query->result();
	}
	
	/*Select single record*/
	function get_user($id) {
		$this->db->select([“*"]);
		$this->db->from('user_info');
		$this->db->where([“id" => $id]);
		$query = $this->db->get();
		return $query->row();
	}
	
	/*Update single record*/
	public function update($id, $data) {
		$where = [“id" => $id];
		return $this->db->update('user_info', $where, $data);
	}
	
}