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);
?>