Я использую Tablesaw, которая сортирует данные, когда вы щелкаете заголовки таблицы, однако скрипт не позволяет вам сделать конкретный столбец сортируемым при загрузке страницы.
Итак, мой вопрос, как сделать таблицу сортируемой по любому столбцу, который я хочу?
Tablesaw Demo: http://filamentgroup.github.io/tablesaw/demo/sort.html
Tablesaw https://www.filamentgroup.com/lab/tablesaw.html
Мы также вызываем наши данные из базы данных … это наш код …
<?php
// Function to create the HTML table using the data stored in the database.
function displayTable($table) {
include "connection.php";
$sql = "SELECT * FROM $table";
$result = mysqli_query($conn, $sql)or die(mysql_error());
if (!mysqli_num_rows($result)==0) {
print "<table id='carTable' class='tablesaw paginated' data-tablesaw-sortable data-tablesaw-sortable-switch><thead>";
print "<tr><th scope='col' data-tablesaw-sortable-col>Model</th><th scope='col' data-tablesaw-sortable-col>Pack</th><th scope='col' data-tablesaw-sortable-col>Colour</th><th scope='col' data-tablesaw-sortable-col>Registration</th><th scope='col' data-tablesaw-sortable-col data-sortable-numeric data-tablesaw-sortable-default-col>Price When New</th><th scope='col' data-tablesaw-sortable-col data-sortable-numeric>New Price</th><th scope='col' data-tablesaw-sortable-col data-sortable-numeric><span class='red'>Saving</span></th><th scope='col' data-tablesaw-sortable-col>Retail Centre</th></tr></thead><tbody>";
while($row = mysqli_fetch_array($result)){
$variant = $row['Variant'];
$model = $row['Model'];
$pack = $row['Pack'];
$colour = $row['Colour'];
$regNo = $row['RegNo'];
$priceWhenNew = $row['PriceWhenNew'];
$nearlyNewPrice = $row['NearlyNewPrice'];
$saving = $row['Saving'];
$retailCentre = $row['RetailCentre'];print "<tr><td>".$model."</td><td>".$pack."</td><td>".$colour."</td><td class='regno'>".$regNo."</td><td>£".number_format($priceWhenNew)."</td><td>£".number_format($nearlyNewPrice)."</td><td class='red'>£".number_format($saving)."</td><td class='retailer'>".$retailCentre."</td><td><a href='#' class='wide-btn contact-btn'>CONTACT US FOR MORE INFO</a></td></tr>";
} // End while loop
print "</tbody></table>";
}
else {
print "<h1>No results found.</h1>";
}
}
?>
Вы можете начать с получения результатов из базы данных в правильном порядке. Допустим, вы хотите, чтобы таблица сортировалась по «Модели» по умолчанию. Ваш SQL-оператор должен быть:
$sql = "SELECT * FROM $table ORDER BY Model ASC";
Кроме того, после вывода результатов в правильном порядке для начала, в соответствии с документацией на https://github.com/filamentgroup/tablesaw вам нужно положить data-tablesaw-sortable-default-col
в столбце вы хотите быть отсортированы по умолчанию.
Итак, в вашем примере это станет:
print "<tr>
<th scope='col' data-tablesaw-sortable-col data-tablesaw-sortable-default-col>Model</th>
<th scope='col' data-tablesaw-sortable-col>Pack</th>
<th scope='col' data-tablesaw-sortable-col>Colour</th>
<th scope='col' data-tablesaw-sortable-col>Registration</th>
<th scope='col' data-tablesaw-sortable-col data-sortable-numeric>Price When New</th>
<th scope='col' data-tablesaw-sortable-col data-sortable-numeric>New Price</th>
<th scope='col' data-tablesaw-sortable-col data-sortable-numeric><span class='red'>Saving</span></th>
<th scope='col' data-tablesaw-sortable-col>Retail Centre</th>
</tr></thead><tbody>";
Других решений пока нет …