Bootstrap 5
https://getbootstrap.com/docs/5.0/getting-started/introduction/
https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css
Jquery
https://jquery.com/download/
CDN : jsDelivr CDN
https://www.jsdelivr.com/package/npm/jquery
https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js
Bootstrap icons
https://icons.getbootstrap.com/#install
https://cdn.jsdelivr.net/npm/bootstrap-icons@1.8.1/font/bootstrap-icons.css
index.php
//index.php <?php include('conn.php'); ?> <!DOCTYPE html> <html lang = "en"> <head> <meta charset = "UTF-8" name = "viewport" content = "width-device=width, initial-scale=1" /> <link rel = "stylesheet" type = "text/css" href = "https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" /> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.8.1/font/bootstrap-icons.css"> <title>PHP Mysqli CRUD with JQuery AJAX and Bootstrap 5</title> </head> <body> <div style="height:30px;"></div> <div class = "row"> <div class = "col-md-3"> </div> <div class = "col-md-6 well"> <div class="row"> <div class="col-lg-12"> <center><h2 class = "text-primary">PHP Mysqli CRUD with JQuery AJAX and Bootstrap 5</h2></center> <hr> <div> <form> <div class="mb-3"> <label>Firstname:</label> <input type = "text" id = "firstname" class = "form-control"> </div> <div class="mb-3"> <label>Lastname:</label> <input type = "text" id = "lastname" class = "form-control"> </div> <div class="mb-3"> <button type = "button" id="addnew" class = "btn btn-primary"><i class="bi bi-clipboard2-plus-fill"></i> Add</button> </div> </form> </div> </div> </div><br> <div class="row"> <div id="userTable"></div> </div> </div> </div> </body> <script src = "https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script> <script src = "https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"></script> <script type = "text/javascript"> $(document).ready(function(){ showUser(); //Add New $(document).on('click', '#addnew', function(){ if ($('#firstname').val()=="" || $('#lastname').val()==""){ alert('Please input data first'); } else{ $firstname=$('#firstname').val(); $lastname=$('#lastname').val(); $.ajax({ type: "POST", url: "addnew.php", data: { firstname: $firstname, lastname: $lastname, add: 1, }, success: function(){ showUser(); } }); } }); //Delete $(document).on('click', '.delete', function(){ $id=$(this).val(); $.ajax({ type: "POST", url: "delete.php", data: { id: $id, del: 1, }, success: function(){ showUser(); } }); }); //Update $(document).on('click', '.updateuser', function(){ $uid=$(this).val(); $('#edit'+$uid).modal('hide'); $('body').removeClass('modal-open'); $('.modal-backdrop').remove(); $ufirstname=$('#ufirstname'+$uid).val(); $ulastname=$('#ulastname'+$uid).val(); $.ajax({ type: "POST", url: "update.php", data: { id: $uid, firstname: $ufirstname, lastname: $ulastname, edit: 1, }, success: function(){ showUser(); } }); }); }); //Showing our Table function showUser(){ $.ajax({ url: 'show_user.php', type: 'POST', async: false, data:{ show: 1 }, success: function(response){ $('#userTable').html(response); } }); } </script> </html>conn.php
//conn.php <?php $conn = mysqli_connect("localhost","root","","testingdb"); if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } ?>addnew.php
//addnew.php <?php include('conn.php'); if(isset($_POST['add'])){ $firstname=$_POST['firstname']; $lastname=$_POST['lastname']; mysqli_query($conn,"insert into usertble (firstname, lastname) values ('$firstname', '$lastname')"); } ?>show_user.php
//show_user.php <?php include('conn.php'); if(isset($_POST['show'])){ ?> <table class = "table table-bordered alert-success table-hover"> <thead> <th>Firstname</th> <th>Lastname</th> <th>Action</th> </thead> <tbody> <?php $quser=mysqli_query($conn,"select * from usertble"); while($urow=mysqli_fetch_array($quser)){ ?> <tr> <td><?php echo $urow['firstname']; ?></td> <td><?php echo $urow['lastname']; ?></td> <td><button class="btn btn-success" data-bs-toggle="modal" data-bs-target="#editModal<?php echo $urow['userid']; ?>"><i class="bi bi-pencil"></i> Edit</button> | <button class="btn btn-danger delete" value="<?php echo $urow['userid']; ?>"><i class="bi bi-trash"></i> Delete</button> <?php include('edit_modal.php'); ?> </td> </tr> <?php } ?> </tbody> </table> <?php } ?>edit_modal.php
//edit_modal.php <div class="modal fade" id="edit<?php echo $urow['userid']; ?>" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"> <?php $n=mysqli_query($conn,"select * from `user` where userid='".$urow['userid']."'"); $nrow=mysqli_fetch_array($n); ?> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class = "modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> <center><h3 class = "text-success modal-title">Update Member</h3></center> </div> <form> <div class="modal-body"> Firstname: <input type="text" value="<?php echo $nrow['firstname']; ?>" id="ufirstname<?php echo $urow['userid']; ?>" class="form-control"> Lastname: <input type="text" value="<?php echo $nrow['lastname']; ?>" id="ulastname<?php echo $urow['userid']; ?>" class="form-control"> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal"><span class = "glyphicon glyphicon-remove"></span> Cancel</button> | <button type="button" class="updateuser btn btn-success" value="<?php echo $urow['userid']; ?>"><span class = "glyphicon glyphicon-floppy-disk"></span> Save</button> </div> </form> </div> </div> </div>update.php
//update.php <?php include('conn.php'); if(isset($_POST['edit'])){ $id=$_POST['id']; $firstname=$_POST['firstname']; $lastname=$_POST['lastname']; mysqli_query($conn,"update usertble set firstname='$firstname', lastname='$lastname' where userid='$id'"); } ?>
//delete.php <?php include('conn.php'); if(isset($_POST['del'])){ $id=$_POST['id']; mysqli_query($conn,"delete from usertble where userid='$id'"); } ?>