Bootstrap 4.0 Version
https://getbootstrap.com/docs/4.0/getting-started/introduction/
https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css
angularjs CDN
https://angularjs.org/ Version 1.8.2 https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js
CREATE TABLE `products` (
`id` int(11) NOT NULL,
`productname` varchar(30) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `products` (`id`, `productname`) VALUES
(1, 'Ipad'),
(2, 'Iphone'),
(3, 'Macbook'),
(4, 'Mac'),
(5, 'Dell Inspiron 15'),
(6, 'Mac Mini');
ALTER TABLE `products`
ADD PRIMARY KEY (`id`);
ALTER TABLE `products`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;
index.html
//index.html <!DOCTYPE html> <html lang="en" ng-app="appselect"> <head> <meta charset="utf-8"> <title>AngularJS Select add Options with PHP MySQLi</title> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script> </head> <body ng-controller="selectController" ng-init="fetch()"> <div class="container"> <h1 class="page-header text-center">AngularJS Select add Options with PHP MySQLi</h1> <div class="row"> <div class="col-md-6"> <h3>Add new Product</h3> <input type="text" placeholder="Product Name" class="form-control" ng-model="newProduct.productname"><br> <button type="button" class="btn btn-primary" ng-click="add()"> Save</button> </div> <div class="col-md-6"> <h3>Select Product</h3> <select ng-model="selectedproduct" ng-options="x.productname for x in products" class="form-control"> </select> <hr> <p><b>You selected:</b> {{selectedproduct.productname}}</p> <p><b>ID:</b> {{selectedproduct.id}}</p> </div> </div> <div class="row"> <h3>Product Table</h3> <table class="table table-bordered table-striped"> <thead> <tr> <th>Product ID</th> <th>Product Name</th> <tr> </thead> <tbody> <tr ng-repeat="rs in products"> <td>{{ rs.id }}</td> <td>{{ rs.productname }}</td> </tr> </tbody> </table> </div> </div> <script src="angular.js"></script> </body> </html>angular.js
//angular.js var app = angular.module('appselect', []); app.controller('selectController', function($scope, $http){ $scope.fetch = function(){ $http({ method: 'GET', url: 'fetch.php', }).then(function (data){ console.log(data) $scope.products = data.data; },function (error){ console.log(error, 'can not get data.'); }); } $scope.add = function(){ console.log($scope.newProduct); $http({ method: 'POST', url: 'add.php', data: $scope.newProduct }).then(function (data){ console.log(data) $scope.newProduct = ''; $scope.fetch(); },function (error){ console.log(error, 'can not get data.'); }); } });fetch.php
//fetch.php <?php $conn = new mysqli('localhost', 'root', '', 'testingdb'); $output = array(); $sql = "SELECT * FROM products"; $query=$conn->query($sql); while($row=$query->fetch_array()){ $output[] = $row; } echo json_encode($output); ?>add.php
//add.php <?php $conn = new mysqli('localhost', 'root', '', 'testingdb'); $data = json_decode(file_get_contents("php://input")); $productname = $data->productname; $sql = "INSERT INTO products (productname) VALUES ('$productname')"; $conn->query($sql); ?>