JavaScript CRUD Operation Made Easy: Source Code Included!

JavaScript CRUD operations with this comprehensive guide. Explore the basics, best practices, and practical examples. Start coding now!

JavaScript is a versatile programming language that empowers developers to create dynamic and interactive web applications. One of the fundamental operations in web development is CRUD (Create, Read, Update, and Delete). In this article, we will explore how JavaScript simplifies CRUD operations and provides developers with a seamless experience. Whether you are a beginner or an experienced developer, this guide will help you understand and implement CRUD operations effortlessly.

1. Introduction to CRUD Operations

CRUD operations involve interacting with a database or data storage system to create, retrieve, update, and delete data. JavaScript, being a powerful scripting language, provides numerous techniques and libraries to simplify these operations. By leveraging JavaScript’s capabilities, developers can perform CRUD operations efficiently and effectively.

2. Setting Up the Environment

Before diving into the details of CRUD operations, it’s essential to set up the development environment. To work with JavaScript and perform CRUD operations, follow these steps:

  1. Install a code editor such as Visual Studio Code or Sublime Text.
  2. Set up a local server or use an online development environment.
  3. Ensure you have a working internet connection for accessing external libraries and resources.

3. Creating Data: The “Create” Operation

The “Create” operation involves adding new data to a database or storage system. JavaScript provides various methods and frameworks to facilitate this process. One popular choice is using JavaScript frameworks like React or Angular, which offer powerful form handling capabilities. These frameworks simplify the process of capturing user input and sending it to the server for storage.

To create data in JavaScript, follow these steps:

  1. Set up a form to capture user input.
  2. Use JavaScript to handle form submission.
  3. Validate the input data to ensure its integrity.
  4. Send the data to the server using AJAX or Fetch API.
  5. Handle the server’s response and provide appropriate feedback to the user.

4. Reading Data: The “Read” Operation

The “Read” operation involves retrieving data from a database or storage system. JavaScript provides several methods to fetch and display data in a user-friendly manner. Whether you want to retrieve a single record or multiple records, JavaScript libraries like Axios or jQuery can simplify the process.

To read data in JavaScript, follow these steps:

  1. Construct a request to fetch data from the server.
  2. Use AJAX or Fetch API to send the request.
  3. Handle the server’s response and process the retrieved data.
  4. Display the data on the web page using HTML and JavaScript.

5. Updating Data: The “Update” Operation

The “Update” operation involves modifying existing data in a database or storage system. JavaScript offers various techniques to update data seamlessly. Frameworks like Vue.js or Ember.js provide efficient two-way data binding, making it easier to update data and reflect the changes in real-time.

To update data in JavaScript, follow these steps:

  1. Retrieve the data that needs to be updated.
  2. Display the data in an editable form.
  3. Capture the user’s changes using JavaScript.
  4. Send the updated data to the server using AJAX or Fetch API.
  5. Handle the server’s response and provide appropriate feedback to the user.

6. Deleting Data: The “Delete” Operation

The “Delete” operation involves removing data from a database or storage system. JavaScript provides mechanisms to delete data efficiently. By utilizing JavaScript libraries like jQuery or Axios, developers can easily send requests to the server and handle the deletion process.

To delete data in JavaScript, follow these steps:

  1. Identify the data that needs to be deleted.
  2. Confirm the deletion with the user to avoid accidental removal.
  3. Send a delete request to the server using AJAX or Fetch API.
  4. Handle the server’s response and provide appropriate feedback to the user.

7. Best Practices for CRUD Operations

When working with CRUD operations in JavaScript, it’s important to follow best practices to ensure efficiency, maintainability, and security. Here are some essential guidelines:

  1. Use proper input validation and sanitization techniques to prevent malicious activities like SQL injection or cross-site scripting (XSS).
  2. Implement server-side validation to enforce business rules and data integrity.
  3. Utilize proper error handling mechanisms to provide meaningful feedback to users.
  4. Implement authentication and authorization mechanisms to control access to CRUD operations.
  5. Regularly backup data to prevent data loss in case of system failures.

8. Conclusion

In this article, we explored how JavaScript simplifies CRUD operations, enabling developers to create, read, update, and delete data seamlessly. We discussed the essential steps involved in each CRUD operation and highlighted best practices for efficient and secure development. By leveraging JavaScript’s capabilities and following best practices, developers can build robust web applications that interact with databases effectively.

Frequently Asked Questions (FAQs)

Q1: Can I perform CRUD operations without using any JavaScript framework? Yes, you can perform CRUD operations using pure JavaScript without relying on any specific framework. JavaScript provides native capabilities and APIs to handle database interactions.

Q2: Are there any JavaScript libraries specifically designed for CRUD operations? While there are no libraries solely dedicated to CRUD operations, JavaScript frameworks like React, Angular, and Vue.js provide comprehensive toolsets that simplify data handling, including CRUD operations.

Q3: How can I secure my CRUD operations from unauthorized access? To secure your CRUD operations, implement proper authentication and authorization mechanisms. Ensure that only authenticated users with the appropriate permissions can perform CRUD operations.

Q4: Can I use JavaScript to perform CRUD operations in a mobile app? Yes, JavaScript frameworks like React Native or Ionic allow you to build mobile applications that can perform CRUD operations using JavaScript.

Q5: Where can I find the source code for JavaScript CRUD operations? You can find the source code for JavaScript CRUD operations on our GitHub repository. Visit https://github.com/crud-operations/javascript to access the code.

Index.html

				
					<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Crud operation in javascript</title>
    <link type="text/css" rel="stylesheet" href="style.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" integrity="sha512-iecdLmaskl7CVkqkXNQ/ZH/XLlvWZOJyj7Yy7tcenmpD1ypASozpmT/E0iPtmFIB46ZmdtAc9eNBvH0H/ZpiBw==" crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>

<body>

    <h1>CRUD OPERATION IN JAVASCRIPT WITH SOURCE CODE</h1>
    <table>
        <tr>
            <td>
                
                <form autocomplete="off" onsubmit="onFormSubmit()">
                    <div>
                        <label for="fullName">Full Name</label>
                        <input type="text" name="fullName" id="fullName" placeholder="Enter Full Name">
                    </div>
                    <div>
                        <label for="empCode">EMP Code</label>
                        <input type="text" name="empCode" id="empCode" placeholder="Enter EMP Code">
                    </div>
                    <div>
                        <label for="salary">Salary</label>
                        <input type="text" name="salary" id="salary" placeholder="Enter Salary">
                    </div>
                    <div>
                        <label for="city">City</label>
                        <input type="text" name="city" id="city" placeholder="Enter City">
                    </div>
                    <div class="form_action--button">
                        <input type="submit" value="Submit">
                        <input type="reset" value="Reset">
                    </div>
                </form>
            </td>
            <td>
                <table class="list" id="employeeList">
                    <thead>
                        <tr>
                            <th>Full Name</th>
                            <th>EMP Code</th>
                            <th>Salary</th>
                            <th>City</th>
                            <th>Action</th>
                        </tr>
                    </thead>
                    <tbody>

                    </tbody>
                </table>
            </td>
        </tr>
    </table>
    <p>copyright @ 2023 by dailywebdesign</p> <script type="litespeed/javascript" data-src="./script.js"></script> <script data-no-optimize="1">!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).LazyLoad=e()}(this,function(){"use strict";function e(){return(e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,a=arguments[e];for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(t[n]=a[n])}return t}).apply(this,arguments)}function i(t){return e({},it,t)}function o(t,e){var n,a="LazyLoad::Initialized",i=new t(e);try{n=new CustomEvent(a,{detail:{instance:i}})}catch(t){(n=document.createEvent("CustomEvent")).initCustomEvent(a,!1,!1,{instance:i})}window.dispatchEvent(n)}function l(t,e){return t.getAttribute(gt+e)}function c(t){return l(t,bt)}function s(t,e){return function(t,e,n){e=gt+e;null!==n?t.setAttribute(e,n):t.removeAttribute(e)}(t,bt,e)}function r(t){return s(t,null),0}function u(t){return null===c(t)}function d(t){return c(t)===vt}function f(t,e,n,a){t&&(void 0===a?void 0===n?t(e):t(e,n):t(e,n,a))}function _(t,e){nt?t.classList.add(e):t.className+=(t.className?" ":"")+e}function v(t,e){nt?t.classList.remove(e):t.className=t.className.replace(new RegExp("(^|\\s+)"+e+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")}function g(t){return t.llTempImage}function b(t,e){!e||(e=e._observer)&&e.unobserve(t)}function p(t,e){t&&(t.loadingCount+=e)}function h(t,e){t&&(t.toLoadCount=e)}function n(t){for(var e,n=[],a=0;e=t.children[a];a+=1)"SOURCE"===e.tagName&&n.push(e);return n}function m(t,e){(t=t.parentNode)&&"PICTURE"===t.tagName&&n(t).forEach(e)}function a(t,e){n(t).forEach(e)}function E(t){return!!t[st]}function I(t){return t[st]}function y(t){return delete t[st]}function A(e,t){var n;E(e)||(n={},t.forEach(function(t){n[t]=e.getAttribute(t)}),e[st]=n)}function k(a,t){var i;E(a)&&(i=I(a),t.forEach(function(t){var e,n;e=a,(t=i[n=t])?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(t,e,n){_(t,e.class_loading),s(t,ut),n&&(p(n,1),f(e.callback_loading,t,n))}function w(t,e,n){n&&t.setAttribute(e,n)}function x(t,e){w(t,ct,l(t,e.data_sizes)),w(t,rt,l(t,e.data_srcset)),w(t,ot,l(t,e.data_src))}function O(t,e,n){var a=l(t,e.data_bg_multi),i=l(t,e.data_bg_multi_hidpi);(a=at&&i?i:a)&&(t.style.backgroundImage=a,n=n,_(t=t,(e=e).class_applied),s(t,ft),n&&(e.unobserve_completed&&b(t,e),f(e.callback_applied,t,n)))}function N(t,e){!e||0<e.loadingCount||0<e.toLoadCount||f(t.callback_finish,e)}function C(t,e,n){t.addEventListener(e,n),t.llEvLisnrs[e]=n}function M(t){return!!t.llEvLisnrs}function z(t){if(M(t)){var e,n,a=t.llEvLisnrs;for(e in a){var i=a[e];n=e,i=i,t.removeEventListener(n,i)}delete t.llEvLisnrs}}function R(t,e,n){var a;delete t.llTempImage,p(n,-1),(a=n)&&--a.toLoadCount,v(t,e.class_loading),e.unobserve_completed&&b(t,n)}function T(o,r,c){var l=g(o)||o;M(l)||function(t,e,n){M(t)||(t.llEvLisnrs={});var a="VIDEO"===t.tagName?"loadeddata":"load";C(t,a,e),C(t,"error",n)}(l,function(t){var e,n,a,i;n=r,a=c,i=d(e=o),R(e,n,a),_(e,n.class_loaded),s(e,dt),f(n.callback_loaded,e,a),i||N(n,a),z(l)},function(t){var e,n,a,i;n=r,a=c,i=d(e=o),R(e,n,a),_(e,n.class_error),s(e,_t),f(n.callback_error,e,a),i||N(n,a),z(l)})}function G(t,e,n){var a,i,o,r,c;t.llTempImage=document.createElement("IMG"),T(t,e,n),E(c=t)||(c[st]={backgroundImage:c.style.backgroundImage}),o=n,r=l(a=t,(i=e).data_bg),c=l(a,i.data_bg_hidpi),(r=at&&c?c:r)&&(a.style.backgroundImage='url("'.concat(r,'")'),g(a).setAttribute(ot,r),L(a,i,o)),O(t,e,n)}function D(t,e,n){var a;T(t,e,n),a=e,e=n,(t=It[(n=t).tagName])&&(t(n,a),L(n,a,e))}function V(t,e,n){var a;a=t,(-1<yt.indexOf(a.tagName)?D:G)(t,e,n)}function F(t,e,n){var a;t.setAttribute("loading","lazy"),T(t,e,n),a=e,(e=It[(n=t).tagName])&&e(n,a),s(t,vt)}function j(t){t.removeAttribute(ot),t.removeAttribute(rt),t.removeAttribute(ct)}function P(t){m(t,function(t){k(t,Et)}),k(t,Et)}function S(t){var e;(e=At[t.tagName])?e(t):E(e=t)&&(t=I(e),e.style.backgroundImage=t.backgroundImage)}function U(t,e){var n;S(t),n=e,u(e=t)||d(e)||(v(e,n.class_entered),v(e,n.class_exited),v(e,n.class_applied),v(e,n.class_loading),v(e,n.class_loaded),v(e,n.class_error)),r(t),y(t)}function $(t,e,n,a){var i;n.cancel_on_exit&&(c(t)!==ut||"IMG"===t.tagName&&(z(t),m(i=t,function(t){j(t)}),j(i),P(t),v(t,n.class_loading),p(a,-1),r(t),f(n.callback_cancel,t,e,a)))}function q(t,e,n,a){var i,o,r=(o=t,0<=pt.indexOf(c(o)));s(t,"entered"),_(t,n.class_entered),v(t,n.class_exited),i=t,o=a,n.unobserve_entered&&b(i,o),f(n.callback_enter,t,e,a),r||V(t,n,a)}function H(t){return t.use_native&&"loading"in HTMLImageElement.prototype}function B(t,i,o){t.forEach(function(t){return(a=t).isIntersecting||0<a.intersectionRatio?q(t.target,t,i,o):(e=t.target,n=t,a=i,t=o,void(u(e)||(_(e,a.class_exited),$(e,n,a,t),f(a.callback_exit,e,n,t))));var e,n,a})}function J(e,n){var t;et&&!H(e)&&(n._observer=new IntersectionObserver(function(t){B(t,e,n)},{root:(t=e).container===document?null:t.container,rootMargin:t.thresholds||t.threshold+"px"}))}function K(t){return Array.prototype.slice.call(t)}function Q(t){return t.container.querySelectorAll(t.elements_selector)}function W(t){return c(t)===_t}function X(t,e){return e=t||Q(e),K(e).filter(u)}function Y(e,t){var n;(n=Q(e),K(n).filter(W)).forEach(function(t){v(t,e.class_error),r(t)}),t.update()}function t(t,e){var n,a,t=i(t);this._settings=t,this.loadingCount=0,J(t,this),n=t,a=this,Z&&window.addEventListener("online",function(){Y(n,a)}),this.update(e)}var Z="undefined"!=typeof window,tt=Z&&!("onscroll"in window)||"undefined"!=typeof navigator&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),et=Z&&"IntersectionObserver"in window,nt=Z&&"classList"in document.createElement("p"),at=Z&&1<window.devicePixelRatio,it={elements_selector:".lazy",container:tt||Z?document:null,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",data_bg_hidpi:"bg-hidpi",data_bg_multi:"bg-multi",data_bg_multi_hidpi:"bg-multi-hidpi",data_poster:"poster",class_applied:"applied",class_loading:"litespeed-loading",class_loaded:"litespeed-loaded",class_error:"error",class_entered:"entered",class_exited:"exited",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1},ot="src",rt="srcset",ct="sizes",lt="poster",st="llOriginalAttrs",ut="loading",dt="loaded",ft="applied",_t="error",vt="native",gt="data-",bt="ll-status",pt=[ut,dt,ft,_t],ht=[ot],mt=[ot,lt],Et=[ot,rt,ct],It={IMG:function(t,e){m(t,function(t){A(t,Et),x(t,e)}),A(t,Et),x(t,e)},IFRAME:function(t,e){A(t,ht),w(t,ot,l(t,e.data_src))},VIDEO:function(t,e){a(t,function(t){A(t,ht),w(t,ot,l(t,e.data_src))}),A(t,mt),w(t,lt,l(t,e.data_poster)),w(t,ot,l(t,e.data_src)),t.load()}},yt=["IMG","IFRAME","VIDEO"],At={IMG:P,IFRAME:function(t){k(t,ht)},VIDEO:function(t){a(t,function(t){k(t,ht)}),k(t,mt),t.load()}},kt=["IMG","IFRAME","VIDEO"];return t.prototype={update:function(t){var e,n,a,i=this._settings,o=X(t,i);{if(h(this,o.length),!tt&&et)return H(i)?(e=i,n=this,o.forEach(function(t){-1!==kt.indexOf(t.tagName)&&F(t,e,n)}),void h(n,0)):(t=this._observer,i=o,t.disconnect(),a=t,void i.forEach(function(t){a.observe(t)}));this.loadAll(o)}},destroy:function(){this._observer&&this._observer.disconnect(),Q(this._settings).forEach(function(t){y(t)}),delete this._observer,delete this._settings,delete this.loadingCount,delete this.toLoadCount},loadAll:function(t){var e=this,n=this._settings;X(t,n).forEach(function(t){b(t,e),V(t,n,e)})},restoreAll:function(){var e=this._settings;Q(e).forEach(function(t){U(t,e)})}},t.load=function(t,e){e=i(e);V(t,e)},t.resetStatus=function(t){r(t)},Z&&function(t,e){if(e)if(e.length)for(var n,a=0;n=e[a];a+=1)o(t,n);else o(t,e)}(t,window.lazyLoadOptions),t});!function(e,t){"use strict";function a(){t.body.classList.add("litespeed_lazyloaded")}function n(){console.log("[LiteSpeed] Start Lazy Load Images"),d=new LazyLoad({elements_selector:"[data-lazyloaded]",callback_finish:a}),o=function(){d.update()},e.MutationObserver&&new MutationObserver(o).observe(t.documentElement,{childList:!0,subtree:!0,attributes:!0})}var d,o;e.addEventListener?e.addEventListener("load",n,!1):e.attachEvent("onload",n)}(window,document);</script><script data-no-optimize="1">var litespeed_vary=document.cookie.replace(/(?:(?:^|.*;\s*)_lscache_vary\s*\=\s*([^;]*).*$)|^.*$/,"");litespeed_vary||fetch("/wp-content/plugins/litespeed-cache/guest.vary.php",{method:"POST",cache:"no-cache",redirect:"follow"}).then(e=>e.json()).then(e=>{console.log(e),e.hasOwnProperty("reload")&&"yes"==e.reload&&(sessionStorage.setItem("litespeed_docref",document.referrer),window.location.reload(!0))});</script><script data-optimized="1" type="litespeed/javascript" data-src="https://dailywebdesigns.com/wp-content/litespeed/js/b878c911e24dd7fab56c5c8877f79433.js?ver=04ad8"></script><script>const litespeed_ui_events=["mouseover","click","keydown","wheel","touchmove","touchstart"];var urlCreator=window.URL||window.webkitURL;function litespeed_load_delayed_js_force(){console.log("[LiteSpeed] Start Load JS Delayed"),litespeed_ui_events.forEach(e=>{window.removeEventListener(e,litespeed_load_delayed_js_force,{passive:!0})}),document.querySelectorAll("iframe[data-litespeed-src]").forEach(e=>{e.setAttribute("src",e.getAttribute("data-litespeed-src"))}),"loading"==document.readyState?window.addEventListener("DOMContentLoaded",litespeed_load_delayed_js):litespeed_load_delayed_js()}litespeed_ui_events.forEach(e=>{window.addEventListener(e,litespeed_load_delayed_js_force,{passive:!0})});async function litespeed_load_delayed_js(){let t=[];for(var d in document.querySelectorAll('script[type="litespeed/javascript"]').forEach(e=>{t.push(e)}),t)await new Promise(e=>litespeed_load_one(t[d],e));document.dispatchEvent(new Event("DOMContentLiteSpeedLoaded")),window.dispatchEvent(new Event("DOMContentLiteSpeedLoaded"))}function litespeed_load_one(t,e){console.log("[LiteSpeed] Load ",t);var d=document.createElement("script");d.addEventListener("load",e),d.addEventListener("error",e),t.getAttributeNames().forEach(e=>{"type"!=e&&d.setAttribute("data-src"==e?"src":e,t.getAttribute(e))});let a=!(d.type="text/javascript");!d.src&&t.textContent&&(d.src=litespeed_inline2src(t.textContent),a=!0),t.after(d),t.remove(),a&&e()}function litespeed_inline2src(t){try{var d=urlCreator.createObjectURL(new Blob([t.replace(/^(?:<!--)?(.*?)(?:-->)?$/gm,"$1")],{type:"text/javascript"}))}catch(e){d="data:text/javascript;base64,"+btoa(t.replace(/^(?:<!--)?(.*?)(?:-->)?$/gm,"$1"))}return d}</script></body>

</html>

				
			

style.css

				
					body > table{
    width: 80%;
    margin: 40px auto;
    background-color: white;
    border-radius: 10px;
    box-shadow: rgba(0, 0, 0, 0.25) 0px 54px 55px, rgba(0, 0, 0, 0.12) 0px -12px 30px, rgba(0, 0, 0, 0.12) 0px 4px 6px, rgba(0, 0, 0, 0.17) 0px 12px 13px, rgba(0, 0, 0, 0.09) 0px -3px 5px;
}

body {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    height: 100vh;
    background: linear-gradient(45deg, greenyellow, dodgerblue);
    font-family: "Sansita Swashed", cursive;
  }
table{
    border-collapse: collapse;
}
table.list{
    width: 100%;
}
td, th{ 
    text-align: left;
    padding: 8px 15px;
}

tr:nth-child(even),table.list thead>tr{
    background-color: #ddd;
}
input[type="text"], input[type="number"]{
    width: 91%;
    padding: 12px 20px;
    margin: 8px 0;
    display: inline-block;
    border: 1px solid #ccc;
    border-radius: 4px;
}
input[type="submit"],input[type="reset"]{
    background: #eee;
    padding: 6px 12px;
    font-size: 1rem;
    cursor: pointer;
    border-radius: 30px;
    border: none;
    margin: 15px 0 10px;
    outline: none;
}
input[type="submit"]:hover{
    background: linear-gradient(45deg, greenyellow, dodgerblue);
}
input[type="reset"]:hover{
    background: linear-gradient(45deg, greenyellow, dodgerblue);
}

h1{
    text-align: center;
    color: #eee;
    margin: 50px;
}

label{
    text-transform: uppercase;
    font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
}

input{
    text-transform: uppercase;
    font-weight: 200;
    font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;

}

#editbutton{
    color: green;
    margin-right: 5px;
    padding: 5px;
    border-radius: 5px;
}
#editbutton:hover{
    background-color: green;
   color: white;
}
#deletebutton{
    color: red;
    margin-left: 5px;
    padding: 5px;
    border-radius: 5px;
}
#deletebutton:hover{
    background-color: red;
   color: white;
}

p{
    font-size: larger;
    text-align: center;
    font-weight: bolder;
}
				
			

main.js

				
					var selectedRow = null;
function onFormSubmit(e){
    event.preventDefault();
    var formData = readFormData();
    if(selectedRow === null){
        insertNewRecord(formData);
    }else{
        updateRecord(formData)
    }
    resetForm();
    }
// Read operation using this function
function readFormData(){
    var formData = {};
    formData["fullName"] = document.getElementById("fullName").value;
    formData["empCode"] = document.getElementById("empCode").value;
    formData["salary"] = document.getElementById("salary").value;
    formData["city"] = document.getElementById("city").value;
    return formData;
}

// Create operation
function insertNewRecord(data){
    var table = document.getElementById("employeeList").getElementsByTagName('tbody')[0];
    var newRow = table.insertRow(table.length);
    var cell1 = newRow.insertCell(0);
        cell1.innerHTML = data.fullName;
    var cell2 = newRow.insertCell(1);
        cell2.innerHTML = data.empCode;
    var cell3 = newRow.insertCell(2);
        cell3.innerHTML = data.salary;
    var cell4 = newRow.insertCell(3);
        cell4.innerHTML = data.city;
    var cell5 = newRow.insertCell(4);
        cell5.innerHTML = `<a href="#" onClick='onEdit(this)' id="editbutton"><i class="fa-regular fa-pen-to-square"></i></a>
                        <a href="#" onClick='onDelete(this)' id="deletebutton"><i class="fa-regular fa-trash-can"></i></a>`;
}

// To Reset the data of fill input
function resetForm(){
    document.getElementById('fullName').value = '';
    document.getElementById('empCode').value = '';
    document.getElementById('salary').value = '';
    document.getElementById('city').value = '';
    selectedRow = null;
}

// For Edit operation
function onEdit(td){
    selectedRow = td.parentElement.parentElement;
    document.getElementById('fullName').value = selectedRow.cells[0].innerHTML;
    document.getElementById('empCode').value = selectedRow.cells[1].innerHTML;
    document.getElementById('salary').value = selectedRow.cells[2].innerHTML;
    document.getElementById('city').value = selectedRow.cells[3].innerHTML;
}
function updateRecord(formData){
    selectedRow.cells[0].innerHTML = formData.fullName;
    selectedRow.cells[1].innerHTML = formData.empCode;
    selectedRow.cells[2].innerHTML = formData.salary;
    selectedRow.cells[3].innerHTML = formData.city;
}
function onDelete(td){
    if(confirm('Are you sure you want to delete this record?')){
        row = td.parentElement.parentElement;
        document.getElementById('employeeList').deleteRow(row.rowIndex);
        resetForm();
    }    
}
				
			

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top