{"id":2430,"date":"2022-09-18T03:40:25","date_gmt":"2022-09-18T03:40:25","guid":{"rendered":"https:\/\/codeinsightacademy.com\/blog\/?p=2430"},"modified":"2022-09-18T03:41:06","modified_gmt":"2022-09-18T03:41:06","slug":"datatable","status":"publish","type":"post","link":"https:\/\/codeinsightacademy.com\/blog\/javascript\/datatable\/","title":{"rendered":"Datatable"},"content":{"rendered":"\n<h2>listing.html<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;!-- https:\/\/datatables.net\/examples\/server_side\/simple.html -->\n&lt;!-- https:\/\/datatables.net\/manual\/ajax -->\n&lt;!-- https:\/\/datatables.net\/manual\/ajax#Column-data-points -->\n&lt;!-- https:\/\/stackoverflow.com\/questions\/64526856\/how-to-add-edit-delete-buttons-in-each-row-of-datatable -->\n\n&lt;!DOCTYPE html>\n&lt;html lang=\"en\">\n&lt;head>\n    &lt;meta charset=\"UTF-8\">\n    &lt;meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    &lt;link rel=\"stylesheet\" type=\"text\/css\" href=\"https:\/\/cdn.datatables.net\/1.12.1\/css\/jquery.dataTables.css\">\n  \n    &lt;link rel=\"stylesheet\" type=\"text\/css\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/twitter-bootstrap\/5.2.0\/css\/bootstrap.min.css\">\n    &lt;link rel=\"stylesheet\" type=\"text\/css\" href=\"https:\/\/cdn.datatables.net\/1.12.1\/css\/dataTables.bootstrap5.min.css\">\n\n    &lt;script type=\"text\/javascript\" charset=\"utf8\" src=\"https:\/\/code.jquery.com\/jquery-3.6.1.js\">&lt;\/script>\n&lt;script type=\"text\/javascript\" charset=\"utf8\" src=\"https:\/\/cdn.datatables.net\/1.12.1\/js\/jquery.dataTables.js\">&lt;\/script>\n    &lt;title>Document&lt;\/title>\n&lt;\/head>\n&lt;body>\n&lt;table id=\"example\" class=\"display table table-striped\" style=\"width:100%\">\n        &lt;thead>\n            &lt;tr>\n                &lt;th>Name&lt;\/th>\n                &lt;th>Address&lt;\/th>\n                &lt;th>Salary&lt;\/th>\n                &lt;th>Action&lt;\/th>\n            &lt;\/tr>\n        &lt;\/thead>\n    &lt;\/table>\n&lt;\/body>\n&lt;script>\n    $(document).ready(function () {\n    $('#example').DataTable({\n        processing: true,\n        serverSide: true,\n        ajax: 'http:\/\/ciacloud.in\/juhi\/rems\/get_employees.php',\n        columns: &#91;\n            { data: 'name'},\n            { data: 'address'},\n            { data: 'salary'},\n            { \n                data: 'id',\n                render: (data,type,row) => {\n                    console.log({data,type,row})\n                   return `&lt;a href='edit_form.php?id=${data}'>Edit&lt;\/a> | &lt;a href='delete.php?id=${data}'>Delete&lt;\/a>`;\n                 }\n            }\n        ],\n        columnDefs: &#91;\n            { orderable: false, targets: -1 },\n            {\n                \"defaultContent\": \"-\",\n                \"targets\": \"_all\"\n            }],\n            order: &#91;0,1,2,3],\n    });\n});\n&lt;\/script>\n&lt;\/html>\n<\/code><\/pre>\n\n\n\n<h2>get_employees.php<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n$servername = \"localhost\";\n$username = \"username\";\n$password = \"password\";\n$dbname = \"database\";\n\n$params = $_REQUEST;\nheader('Access-Control-Allow-Origin: *');\n\n$search = isset($params&#91;'search']&#91;'value'])  &amp;&amp; $params&#91;'search']&#91;'value'] != '' ? $params&#91;'search']&#91;'value'] : '';\n\ntry {\n  $conn = new PDO(\"mysql:host=$servername;dbname=$dbname\", $username, $password);\n  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);\n\n  $where = '';\n\n  if($search !== '')\n\t  $where = \" name LIKE '$search%' \";\n  else\n\t  $where = \" 1 = 1 \";\n\n  $sort_columns = &#91;'name', 'address', 'salary'];\n  $sort_column_index = $params&#91;'order']&#91;0]&#91;'column'];\n  $sort_order = isset($params&#91;'order']&#91;0]&#91;'dir']) &amp;&amp; $params&#91;'order']&#91;0]&#91;'dir'] != 1 ? $params&#91;'order']&#91;0]&#91;'dir'] : 'desc';\n\n  $order_by = \" $sort_columns&#91;$sort_column_index] $sort_order\";\n\t\n  $offset = $params&#91;'start'];\n  $limit = $params&#91;'length'];\n\n  $sql = \"SELECT * FROM employees WHERE $where ORDER BY $order_by LIMIT $offset, $limit\";\n  $stmt = $conn->prepare($sql);\n  $stmt->execute();\n\n  \/\/ set the resulting array to associative\n  $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);\n  $employees = $stmt->fetchAll();\n\n} catch(PDOException $e) {\n  echo \"Error: \" . $e->getMessage();\n}\n\n$count_sql = \"SELECT COUNT(*) FROM employees WHERE $where\";\n$result = $conn->prepare($count_sql); \n$result->execute(); \n$totalRecords = $result->fetchColumn(); \n\n$conn = null;\n\n\n$json_data = array(\n\t\t\"draw\"            => intval( $params&#91;'draw'] ),\n\t\t\"recordsTotal\"    => intval( $totalRecords ),\n\t\t\"recordsFiltered\" => intval($totalRecords),\n\t\t\"data\"            => $employees,\n\t\t\"count_sql\"\t=> $count_sql,\n\t\t\"sql\"\t\t=> $sql,\n\t);\n\necho json_encode($json_data);<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>listing.html get_employees.php<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[18],"tags":[],"_links":{"self":[{"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/posts\/2430"}],"collection":[{"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/comments?post=2430"}],"version-history":[{"count":2,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/posts\/2430\/revisions"}],"predecessor-version":[{"id":2432,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/posts\/2430\/revisions\/2432"}],"wp:attachment":[{"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/media?parent=2430"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/categories?post=2430"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codeinsightacademy.com\/blog\/wp-json\/wp\/v2\/tags?post=2430"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}