Hope you guys have suffered same issues as me with Web Development to create forms with Create/Read/Update/Delete functionality. I really use "Datatables" (www.datatables.net) for displaying data in tabular format. Datatables has got many advantages and is easily compatible with bootstrap stylings.
- IE8+ support, major browser support and uses jQuery as its core
- Can natively map JSON data
- Searching and Filtering functionality with pagination Support
- MultiLanguage support, ClientSide Sorting, AJAX based inputs
- Can filter required Columns at front-end
Datatables is free but it's editor (editable tables) are paid. Hence I thought of putting together a simple table to use for editing and publishing data for POST purposes.
In Summary, what we are doing here is
- Creating HTML stub with table headers within a form. Also add "Add Row" and "Delete Row" buttons with onclick actions attached to it and a "Submit" button
- In your javascript, "on document load" create a datatable with built in "input=text" form for rows. This can be done using fnAddData
function addRow() { $('table#myTable').dataTable().fnAddData([ 'input type="text" class="first_name" id="first_name_' + count + '">', // Note the class name 'input type="text" class="last_name" id="last_name_' + count + '">' ]); count++; }
- Similarly for "Delete Row" action, bind it to
$("table#myTable").dataTable().fnDeleteRow(count - 1);
- Using "Add Row" and "Delete Row" you can add/remove any number of rows.
- When you Click the Submit button, the dataTable is scanned and fetched as Key-Value object pair. This is pushed into a JSON object Array.
$("#submitButton").click(function() { oTable = $('#myTable').dataTable(); var numColumns = oTable.fnGetData(0).length; var rules = []; $.each(oTable.fnGetData(), function(i, row) { var rec = {}; for (var c = 0; c < numColumns; c++) { // Extracting Class name as KEY var key = ($(row[c]).attr('class')); // Dynamic Rows as VALUE var value = ($('#' + key + '_' + i).val()); rec[key] = value; } rules.push(rec); }) alert(JSON.stringify(rules)); });
Below is Sample of editable Datatables
Pure web-based create/read/update/delete (CRUD) table with AJAX post functionality