Есть такой вопрос про пагинацию и тэг select. Есть класс
require_once 'class_connect.php';
class Film extends Connection
{
private $prop;
public function __construct()
{
$this->conn=$conn;
}
public function __get($key)
{
if(isset($this->prop[$key]))
{
return $this->prop[$key];
}
return false;
}
public function get_film_of_category(mysqli $conn)
{
$queryselect = "SELECT name, category_id FROM category";
$resultselect = mysqli_query($conn, $queryselect) or die("ERROR " . mysqli_error($conn));
echo "<div class=\"input-group mb-3\" id=\"inputGroupSelect02\">";
echo "<select name=\"select_genre\" class=\"custom-select\">";
while($row = mysqli_fetch_array($resultselect))
{ ?>
<div>
<option value="<?php echo $row['category_id'];?>"> <?php echo $row['name'];?> </option>
</div>
<br/>
<?php
}
echo "</select>";
echo "<div class=\"input-group-append\">";
echo "<button type='submit' class='btn btn-primary' name = 'go' >GO</button>";
echo "</div>";
if(isset($_POST['go']))
{
$catid = $_POST['select_genre'];
if (isset($_GET['page']))
{
$page = $_GET['page'];
}
else
{
$page = 1;
}
$notesOnPage = 5;
$from = ($page - 1) * $notesOnPage;
$query = "SELECT name, rating, title, release_year, c.name FROM film f, film_category fc
LEFT JOIN category c
ON c.category_id = fc.category_id
WHERE f.film_id = fc.film_id
AND fc.category_id= $catid
LIMIT $from, $notesOnPage ";
$result = mysqli_query($conn, $query) or die("ERROR " . mysqli_error($conn));
while($row = mysqli_fetch_array($result))
{?>
<tr>
<th scope="row"><?php echo $this->prop[$key] = $row['name']; ?></th>
<td><?php echo $this->prop[$key] = $row['title']; ?></td>
<td><?php echo $this->prop[$key] = $row['release_year']; ?></td>
<td><?php echo $this->prop[$key] = $row['rating']; ?></td>
</tr>
<?php
}
$query = "SELECT COUNT(*) AS count FROM category";
$result = mysqli_query($conn, $query) or die("ERROR " . mysqli_error($conn));
$count = mysqli_fetch_assoc($result)['count'];
$pagesCount = ceil($count / $notesOnPage);
?>
<nav aria-label="Page navigation example">
<ul class="pagination">
<li class="page-item">
<a class="page-link" href="#" aria-label="Previous">
<span aria-hidden="true">«</span>
<span class="sr-only">Previous</span>
</a>
</li>
<?php
for($i = 1; $i <= $pagesCount; $i++)
{
echo "<li class=\"page-item\"><a class=\"page-link\" href=\"?page=$i\">$i</a></li> ";
}
echo "<a class=\"page-link\" href=\"?page=$i\" aria-label=\"Next\">";
?>
<span aria-hidden="true">»</span>
<span class="sr-only">Next</span>
</a>
</li>
</ul>
</nav>
<?php }
}
}
Вызывается просто
<?php echo $value_category_film->get_film_of_category($conn); ?>
Select по категориям фильма берется из базы, (работает), фильмы по этим категориям тоже из базы, и пагинация для них тоже работает, но работает не очень правильно. При нажатии на ссылку например 2, в пагинации, select "обнуляется" на самое первое значение, и все на странице пропадает. В адресной строке соответственно появляется ссылка вида ....page=2, но для того что бы увидеть эту часть вывода на страницу, снова приходится нажимать кнопку на selecte (GO), что и понятно, это ведь прописано мной в коде.. Я не доганяю как реализовать это нормально, ведь если вынести пагинцию за нажатие кнопки select, то пагинаци яне будет иметь ничего общего с выбраним из selecta значения...
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
работаю на Win10 x64, openserverНастройки по дефолту стоят такие http - apache_2
Есть задачаНужно ввести целый текст(с пробелами, переносом строк и прочее) через консоль
Всем привет! Ребята, помогите плз разобраться с макросами FreemarkerЯ абсолютный новичок в этой теме