PHP - Update MySQLi Data Using AngularJS

In this tutorial we will create a Update MySQLi Data Using AngularJS. This code will update the data in the database by utilizing AngularJS directives. The AngularJS will act as a POST processing request to send data inputs to the database server. This is a user-friendly program you can apply and modify this program to your system. We will be using AngularJS as a comprehensive JavaScript framework that extend the browser capabilities. It handles the heavy lifting of DOM manipulation and AJAX request in a whole.

Getting Started:

First you have to download & install XAMPP or any local server that run PHP scripts. Here's the link for XAMPP server https://www.apachefriends.org/index.html. And this is the link for the bootstrap that i used for the layout design https://getbootstrap.com/. Lastly, this is the link for the AngularJS https://angularjs.org/.

Creating Database

Open your database web server then create a database name in it db_update, after that click Import then locate the database file inside the folder of the application then click ok. tut1

Creating the database connection

Open your any kind of text editor(notepad++, etc..). Then just copy/paste the code below then name it conn.php.
  1. <?php
  2.         $conn = mysqli_connect("localhost", "root", "", "db_update");
  3.        
  4.         if(!$conn){
  5.                 die("Error: Failed to connect to database!");
  6.         }
  7. ?>

Creating The Interface

This is where we will create a simple form for our application. To create the forms simply copy and write it into you text editor, then save it as shown below. index.php
  1. <!DOCTYPE html>
  2. <html lang="en" ng-app="myModule">
  3.         <head>
  4.                 <meta charset="UTF-8" name="viewport" content="width=device-width, initial-scale=1"/>
  5.                 <link rel="stylesheet" type="text/css" href="css/bootstrap.css"/>
  6.         </head>
  7. <body ng-controller="myController">
  8.         <nav class="navbar navbar-default">
  9.                 <div class="container-fluid">
  10.                         <a class="navbar-brand" href="https://sourcecodester.com">Sourcecodester</a>
  11.                 </div>
  12.         </nav>
  13.         <div class="col-md-3"></div>
  14.         <div class="col-md-6 well">    
  15.                 <h3 class="text-primary">PHP - Update MySQLi Data Using AngularJS</h3>
  16.                 <hr style="border-top:1px dotted #ccc;"/>
  17.                 <table class="table table-bordered">
  18.                         <thead class="alert-info">
  19.                                 <tr>
  20.                                         <th>Firstname</th>
  21.                                         <th>Lastname</th>
  22.                                         <th>Address</th>
  23.                                         <th>Action</th>
  24.                                 </tr>
  25.                         </thead>
  26.                         <tbody>
  27.                                 <tr ng-repeat="member in members | orderBy: 'lastname'">
  28.                                         <td>{{member.firstname}}</td>
  29.                                         <td>{{member.lastname}}</td>
  30.                                         <td>{{member.address}}</td>
  31.                                         <td><a class="btn btn-warning" href="{{'update_member.php?mem_id=' + member.mem_id}}"><span class="glyphicon glyphicon-edit"></span> Edit</a></td>
  32.                                 </tr>
  33.                         </tbody>
  34.                 </table>
  35.         </div>
  36. <script src="js/jquery-3.2.1.min.js"></script>
  37. <script src="js/bootstrap.js"></script>
  38. <script src="js/angular.js"></script>
  39. <script src="js/script.js"></script>
  40. </body>
  41. </html>
update_member.php
  1. <!DOCTYPE html>
  2. <html lang="en" ng-app="myModule">
  3.         <head>
  4.                 <meta charset="UTF-8" name="viewport" content="width=device-width, initial-scale=1"/>
  5.                 <link rel="stylesheet" type="text/css" href="css/bootstrap.css"/>
  6.         </head>
  7. <body ng-controller="myController">
  8.         <nav class="navbar navbar-default">
  9.                 <div class="container-fluid">
  10.                         <a class="navbar-brand" href="https://sourcecodester.com">Sourcecodester</a>
  11.                 </div>
  12.         </nav>
  13.         <div class="col-md-3"></div>
  14.         <div class="col-md-6 well">    
  15.                 <h3 class="text-primary">PHP - Update MySQLi Data Using AngularJS</h3>
  16.                 <hr style="border-top:1px dotted #ccc;"/>
  17.                 <div class="col-md-6">
  18.                 <?php
  19.                         if(ISSET($_REQUEST['mem_id'])){
  20.                                 require 'conn.php';
  21.                                 $mem_id = $_REQUEST['mem_id'];
  22.                                 $query = mysqli_query($conn, "SELECT * FROM `member` WHERE `mem_id` = '$mem_id'") or die(mysqli_error());
  23.                                 $fetch = mysqli_fetch_array($query);
  24.                 ?>
  25.                                 <form method="POST" ng-init="member={id: '<?php echo $fetch['mem_id']?>', firstname: '<?php echo $fetch['firstname']?>', lastname: '<?php echo $fetch['lastname']?>', address: '<?php echo $fetch['address']?>'}">
  26.                                         <div class="form-group">
  27.                                                 <label>Firstname</label>
  28.                                                 <input type="hidden" class="form-control" ng-model="member.id"/>
  29.                                                 <input type="text" class="form-control" ng-model="member.firstname" />
  30.                                         </div>
  31.                                         <div class="form-group">
  32.                                                 <label>Lastname</label>
  33.                                                 <input type="text" class="form-control" ng-model="member.lastname" />
  34.                                         </div>
  35.                                         <div class="form-group">
  36.                                                 <label>Address</label>
  37.                                                 <input type="text" class="form-control" ng-model="member.address"/>
  38.                                         </div>
  39.                                        
  40.                                         <button class="btn btn-warning" ng-click="updateData();" type="button"><span class="glyphicon glyphicon-save"></span> Update</button>
  41.                                 </form>
  42.                 <?php
  43.                         }
  44.                 ?>
  45.                 </div>
  46.         </div>
  47. <script src="js/angular.js"></script>
  48. <script src="js/script.js"></script>
  49. </body>
  50. </html>

Creating the Main Function

This code contains the main function of the application. This code will update the data using AngularJS directives. To do this just copy and write these block of codes as shown below inside the text editor and save it as shown below. update.php
  1. <?php
  2.         require_once 'conn.php';
  3.         $data = json_decode(file_get_contents("php://input"));
  4.        
  5.         $mem_id = $data->mem_id;
  6.         $firstname = $data->firstname;
  7.         $lastname = $data->lastname;
  8.         $address = $data->address;
  9.        
  10.         mysqli_query($conn, "UPDATE `member` SET `firstname` = '$firstname', `lastname` = '$lastname', `address` = '$address' WHERE `mem_id` = '$mem_id'") or die(mysqli_error());
  11. ?>
script.js Note: Make sure you save this file inside the js directory in order the script works.
  1. var app = angular.module("myModule", [])
  2.                         .controller("myController", function($scope, $http){
  3.                                 $http.get('data.php').then(function(response){
  4.                                         $scope.members = response.data;
  5.                                 });
  6.                                
  7.                                 $scope.updateData = function(){
  8.                                         if($scope.member.firstname == "" || $scope.member.lastname == "" || $scope.member.address == ""){
  9.                                                 alert("Please complete the required field");
  10.                                         }else{
  11.                                                
  12.                                                 $http.post("update.php", {mem_id: $scope.member.id, firstname: $scope.member.firstname, lastname: $scope.member.lastname, address: $scope.member.address})
  13.                                                 .then(function(){
  14.                                                         window.location = 'index.php';
  15.                                                 });    
  16.                                         }
  17.                                        
  18.                                 }
  19.                                
  20.                                 $scope.getData = function(){
  21.                                         $http.get('data.php').then(function(response){
  22.                                                 $scope.members = response.data;
  23.                                         });
  24.                                 }
  25.                        
  26.                                 $scope.init = function(item){
  27.                                         console.log(item);
  28.                                 }
  29.                        
  30.                         });  
There you have it we successfully created a Update MySQLi Data using AngularJS. I hope that this simple tutorial help you to what you are looking for. For more updates and tutorials just kindly visit this site. Enjoy Coding!!

Add new comment