Я хотел бы отобразить некоторые продукты из базы данных и использовать нумерацию страниц, а также флажки для фильтрации. Моя нумерация работает нормально. И когда я нажимаю флажки и нажимаю «отправить», я получаю отфильтрованные результаты на первой странице. Однако, когда я перехожу на вторую или любую другую страницу, флажки автоматически снимаются, и фильтрация теряется. Вот мой HTML код:
<form action="" method="get">
<input type="checkbox" name="brand[]" value="iPhone">iPhone<br>
<input type="checkbox" name="brand[]" value="iPad">iPad<br>
<input type="checkbox" name="brand[]" value="Samsung">Samsung<br>
<input type="checkbox" name="brand[]" value="Huawei">Huawei<br>
<input type="submit" name="submit" value="Submit">
</form>
<?php include 'display_products.php';?>
Моя нумерация страниц сделана следующим образом:
for ($page=1;$page<=$number_of_pages;$page++) {
if ($page == $page_active) {
echo '<a class="page-number this-active" href="index.php?page=' . $page . '">' . $page . '</a> ';
} else {
echo '<a class="page-number" href="index.php?page=' . $page . '">' . $page . '</a> ';
}
}
Чтобы применить фильтрацию, я использую оператор IF:
if (isset($_GET['brand'])) {
$filter = implode('","',$_GET['brand']);
$sql='SELECT * FROM products WHERE brand IN ("' . $filter . '") LIMIT ' . $this_page_first_result . ',' . $results_per_page;
$result = mysqli_query($conn, $sql);
while($row = $result->fetch_assoc()) {
echo '<div><h3>' . $row['title'] . '</h3><img src="' . $row['image'] . '"<h4>' . $row['price']. '</h4></div>';
}
} //else display all products from the table of the database
Я предполагаю, что когда я go перехожу на следующую страницу, мои чекбоксы снимаются, этот $ _GET ['brand'] становится пустым и активируется оператор "else". Я пытался найти решения этой проблемы, но некоторые из них были неэффективными, а некоторые были слишком сложными для меня, чтобы понять (я новичок). Не могли бы вы объяснить в простых терминах, как сохранять флажки и как сохранять фильтрацию на всех страницах? Я видел такие идеи, как «использовать сессию» или «держать данные в URL», но я не могу понять, как это реализовать. Так что, если вы уточните c, я был бы очень благодарен. Большое спасибо!