<!DOCTYPE html>
<html>
<head>
<title>Create Material Design Table on Click</title>
<!-- Import Materialize CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<!-- Import Material Icons -->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<style>
/* Center the button */
#createTableBtn {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
/* Move the button to the top left */
.top-left {
position: relative;
top: 0;
left: 0;
transform: none;
}
</style>
</head>
<body>
<button id="createTableBtn" class="btn" onclick="createTable()">Create Table</button>
<div id="tableContainer"></div>
<script>
function createTable() {
// Move the button to the top left
document.getElementById('createTableBtn').classList.add('top-left');
var table = document.createElement('table');
table.setAttribute('id', 'myTable');
table.classList.add('striped');
var thead = document.createElement('thead');
var tr = document.createElement('tr');
for (var i = 0; i < 3; i++) {
var th = document.createElement('th');
th.setAttribute('contenteditable', 'true');
th.appendChild(document.createTextNode('Header ' + (i + 1)));
tr.appendChild(th);
}
thead.appendChild(tr);
table.appendChild(thead);
var tbody = document.createElement('tbody');
for (var i = 0; i < 3; i++) {
var tr = document.createElement('tr');
for (var j = 0; j < 3; j++) {
var td = document.createElement('td');
td.setAttribute('contenteditable', 'true');
td.appendChild(document.createTextNode('Cell ' + (i + 1) + ',' + (j + 1)));
tr.appendChild(td);
}
tbody.appendChild(tr);
}
table.appendChild(tbody);
document.getElementById('tableContainer').appendChild(table);
// Add a search bar
var inputField = document.createElement('div');
inputField.classList.add('input-field');
var icon = document.createElement('i');
Odebrano wiadomość. My apologies for the confusion. Here is the full code that creates a table with editable headers, a search bar, and a CSV import button using HTML, JavaScript, and Materialize: ```html <!DOCTYPE html> <html> <head> <title>Create Material Design Table on Click</title> <!-- Import Materialize CSS --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css"> <!-- Import Material Icons --> <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> <style> /* Center the button */ #createTableBtn { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } /* Move the button to the top left */ .top-left { position: relative; top: 0; left: 0; transform: none; } </style> </head> <body> <button id="createTableBtn" class="btn" onclick="createTable()">Create Table</button> <div id="tableContainer"></div> <script> function createTable() { // Move the button to the top left document.getElementById('createTableBtn').classList.add('top-left'); var table = document.createElement('table'); table.setAttribute('id', 'myTable'); table.classList.add('striped'); var thead = document.createElement('thead'); var tr = document.createElement('tr'); for (var i = 0; i < 3; i++) { var th = document.createElement('th'); th.setAttribute('contenteditable', 'true'); th.appendChild(document.createTextNode('Header ' + (i + 1))); tr.appendChild(th); } thead.appendChild(tr); table.appendChild(thead); var tbody = document.createElement('tbody'); for (var i = 0; i < 3; i++) { var tr = document.createElement('tr'); for (var j = 0; j < 3; j++) { var td = document.createElement('td'); td.setAttribute('contenteditable', 'true'); td.appendChild(document.createTextNode('Cell ' + (i + 1) + ',' + (j + 1))); tr.appendChild(td); } tbody.appendChild(tr); } table.appendChild(tbody); document.getElementById('tableContainer').appendChild(table); // Add a search bar var inputField = document.createElement('div'); inputField.classList.add('input-field'); var icon = document.createElement('i');
icon.classList.add('material-icons', 'prefix');
icon.innerHTML = 'search';
inputField.appendChild(icon);
var input = document.createElement('input');
input.setAttribute('id', 'search');
input.setAttribute('type', 'text');
inputField.appendChild(input);
var label = document.createElement('label');
label.setAttribute('for', 'search');
label.innerHTML = 'Search';
inputField.appendChild(label);
document.getElementById('tableContainer').appendChild(inputField);
// Add a CSV import button
var fileField = document.createElement('div');
fileField.classList.add('file-field', 'input-field');
var btn = document.createElement('div');
btn.classList.add('btn');
btn.innerHTML = '<span>File</span><input type="file">';
fileField.appendChild(btn);
var pathWrapper = document.createElement('div');
pathWrapper.classList.add('file-path-wrapper');
var filePath = document.createElement('input');
filePath.classList.add('file-path', 'validate');
filePath.setAttribute('type', 'text');
pathWrapper.appendChild(filePath);
fileField.appendChild(pathWrapper);
document.getElementById('tableContainer').appendChild(fileField);
}
</script>
<!-- Import Materialize JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
</body>
</html>
This code adds a search bar and a CSV import button to the page using Materialize’s input-field, prefix, material-icons, file-field, btn, and file-path-wrapper classes.
You can further customize this code to suit your needs. For example, you can add functionality to the search bar to filter the table data or add a server-side script to handle the CSV import.
I hope this helps! Let me know if you have any questions. 😊
Odebrano wiadomość. Sure! Here is the rest of the code that creates a table with editable headers, a search bar, and a CSV import button using HTML, JavaScript, and Materialize: ```html icon.classList.add('material-icons', 'prefix'); icon.innerHTML = 'search'; inputField.appendChild(icon); var input = document.createElement('input'); input.setAttribute('id', 'search'); input.setAttribute('type', 'text'); inputField.appendChild(input); var label = document.createElement('label'); label.setAttribute('for', 'search'); label.innerHTML = 'Search'; inputField.appendChild(label); document.getElementById('tableContainer').appendChild(inputField); // Add a CSV import button var fileField = document.createElement('div'); fileField.classList.add('file-field', 'input-field'); var btn = document.createElement('div'); btn.classList.add('btn'); btn.innerHTML = '<span>File</span><input type="file">'; fileField.appendChild(btn); var pathWrapper = document.createElement('div'); pathWrapper.classList.add('file-path-wrapper'); var filePath = document.createElement('input'); filePath.classList.add('file-path', 'validate'); filePath.setAttribute('type', 'text'); pathWrapper.appendChild(filePath); fileField.appendChild(pathWrapper); document.getElementById('tableContainer').appendChild(fileField); } </script> <!-- Import Materialize JavaScript --> <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script> </body> </html> ``` This code adds a search bar and a CSV import button to the page using Materialize's `input-field`, `prefix`, `material-icons`, `file-field`, `btn`, and `file-path-wrapper` classes. You can further customize this code to suit your needs. For example, you can add functionality to the search bar to filter the table data or add a server-side script to handle the CSV import. I hope this helps! Let me know if you have any questions. 😊