У меня есть таблица, сгенерированная с помощью кода, который работает идеально.Я также добавил фильтры в эту таблицу (панель поиска, раскрывающийся список и ограничение количества записей).Кроме того, я только что добавил кнопку экспорта, которая работает, когда щелкает и передает все данные таблицы в CSV.Единственный минус в том, что кнопка экспорта будет экспортировать всю таблицу, даже если фильтр включен.Например, если я установил в раскрывающемся списке только мужчин в моей таблице и ограничил результаты до 10 на страницу, кнопка экспорта просто экспортирует всю таблицу.
Я уже некоторое время искал здесь, но ненашел решение.Отправьте справку.
это мой HTML-код как
<div class="table-responsive-sm">
<h2>The Law Society Solicitors</h2>
<p>This is a table of the output of The Law Society Web Scraping Code: Juan S. Gonzalez Jr.</p>
<div style="float:left" class= "col-sm-2">
<input class="form-control" id="Input" type="text" placeholder="Search...">
</div>
<div class="table-title">
</div>
<div id="show" style="float:right" class="table-filter">
<div class="col-lg-2">
<div class="show-entries">
<span>Show results</span>
<select class="form-control" name="limit" id="maxRows">
<option value="5000 ">Full Table</option>
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
</select>
</div>
</div>
</div>
<center>
<div class="col-sm-3">
<div class="filter-group">
<label>Desired Role</label>
<select id="mylist" onchange="myFunction()" class="form-control" >
<option>None</option>
<option>Assistant</option>
<option>Associate</option>
<option>Compliance Officer for Finance and Administration</option>
<option>Compliance Officer for Legal Practice</option>
<option>Consultant</option>
<option>Designated Partner</option>
<option>Director</option>
<option>Employee</option>
<option>In-house Solicitor</option>
<option>Locum</option>
<option>Member</option>
<option>Non-member Partner</option>
<option>Partner</option>
<option>Professional Support Lawyer</option>
<option>Prosecutor</option>
<option>Role not specified</option>
<option>SRA-approved manager - Director</option>
<option>SRA-approved manager - Member</option>
<option>SRA-approved manager - Partner</option>
<option>SRA-approved manager - Sole Practitioner</option>
</select>
</div>
</div>
</center>
</div>
<div id="Data">
<table id="tlaw" class="table table-striped">
<thead>
<tr>
<th>Solicitor</th>
<th>Office</th>
<th>Address</th>
<th>Primary_Role</th>
<th>Secondary_Role</th>
<th>Other_Role</th>
<th>Other_Role_1</th>
</tr>
</thead>
<tbody id="tls_table">
{% block content %}
{% endblock %}
</tbody>
</table>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button><a href="#" type="button" class="export">Export Table data into Excel</a></button>
js код
//export js code
$(document).ready(function() {
function exportTableToCSV($table, filename) {
var $rows = $table.find('tr:has(td)'),
tmpColDelim = String.fromCharCode(11), r
tmpRowDelim = String.fromCharCode(0),
colDelim = '","',
rowDelim = '"\r\n"',
csv = '"' + $rows.map(function(i, row) {
var $row = $(row),
$cols = $row.find('td');
return $cols.map(function(j, col) {
var $col = $(col),
text = $col.text();
return text.replace(/"/g, '""');
}).get().join(tmpColDelim);
}).get().join(tmpRowDelim)
.split(tmpRowDelim).join(rowDelim)
.split(tmpColDelim).join(colDelim) + '"';
if (false && window.navigator.msSaveBlob) {
var blob = new Blob([decodeURIComponent(csv)], {
type: 'text/csv;charset=utf8'
});
window.navigator.msSaveBlob(blob, filename);
} else if (window.Blob && window.URL) {
var blob = new Blob([csv], {
type: 'text/csv;charset=utf-8'
});
var csvUrl = URL.createObjectURL(blob);
$(this)
.attr({
'download': filename,
'href': csvUrl
});
} else {
var csvData = 'data:application/csv;charset=utf-8,' + encodeURIComponent(csv);
$(this)
.attr({
'download': filename,
'href': csvData,
'target': '_blank'
});
}
}
$(".export").on('click', function(event) {
// CSV
var args = [$('#Data>table'), 'export.csv'];
exportTableToCSV.apply(this, args);
});
});
</script>
Я бы хотел, чтобы кнопка экспорта работала с фильтрами, уже находящимися вместо.