Bootstrap 5.1 Version
https://getbootstrap.com/docs/5.1/getting-started/introduction/
angularjs CDN
https://angularjs.org/ Version 1.8.2 https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js
CREATE TABLE `members` (
`id` int(11) NOT NULL,
`firstname` varchar(30) NOT NULL,
`lastname` varchar(30) NOT NULL,
`address` varchar(150) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
ALTER TABLE `members`
ADD PRIMARY KEY (`id`);
ALTER TABLE `members`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;
//index.html <!DOCTYPE html> <html> <head> <title>AngularJS PHP Mysql Submit Form Data</title> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script> </head> <body> <div class="container" style="width:750px;"> <h3 align="center">AngularJS PHP Mysql Submit Form Data</h3> <br /><br /> <div ng-app="myapp" ng-controller="formcontroller"> <form name="userForm" ng-submit="insertData()"> <label class="text-success" ng-show="successInsert">{{successInsert}}</label> <div class="form-group"> <label>First Name <span class="text-danger">*</span></label> <input type="text" name="first_name" ng-model="insert.first_name" class="form-control" /> <span class="text-danger" ng-show="errorFirstname">{{errorFirstname}}</span> </div> <div class="form-group"> <label>Last Name <span class="text-danger">*</span></label> <input type="text" name="last_name" ng-model="insert.last_name" class="form-control" /> <span class="text-danger" ng-show="errorLastname">{{errorLastname}}</span> </div> <div class="form-group"> <label>Address <span class="text-danger">*</span></label> <input type="text" name="address" ng-model="insert.address" class="form-control" /> <span class="text-danger" ng-show="erroraddress">{{erroraddress}}</span> </div> <br /> <div class="form-group"> <input type="submit" name="insert" class="btn btn-info" value="Insert"/> </div> </form> </div> </div> <script> var application = angular.module("myapp", []); application.controller("formcontroller", function($scope, $http){ $scope.insert = {}; $scope.insertData = function(){ $http({ method: 'POST', url: 'insert.php', data:$scope.insert, }).then(function (data){ console.log(data) if(data.data.error) { $scope.errorFirstname = data.data.error.first_name; $scope.errorLastname = data.data.error.last_name; $scope.erroraddress = data.data.error.address; $scope.successInsert = null; } else { $scope.insert = null; $scope.errorFirstname = null; $scope.errorLastname = null; $scope.erroraddress = null; $scope.successInsert = data.data.message; } },function (error){ console.log(error, 'can not post data.'); }); } }); </script> </body> </html>insert.php
//insert.php <?php $connect = mysqli_connect("localhost", "root", "", "testingdb"); $form_data = json_decode(file_get_contents("php://input")); $data = array(); $error = array(); if(empty($form_data->first_name)) { $error["first_name"] = "First Name is required"; } if(empty($form_data->last_name)) { $error["last_name"] = "Last Name is required"; } if(!empty($error)) { $data["error"] = $error; } else { $first_name = mysqli_real_escape_string($connect, $form_data->first_name); $last_name = mysqli_real_escape_string($connect, $form_data->last_name); $address = mysqli_real_escape_string($connect, $form_data->address); $query = " INSERT INTO members(firstname, lastname, address) VALUES ('$first_name', '$last_name', '$address') "; if(mysqli_query($connect, $query)) { $data["message"] = "Data Inserted..."; } } echo json_encode($data); ?>