филитрация Ajax'ом и постраничная навигация

интернет программирование php базы данных AJAX

Делал фильтрацию контента при выборе из селектов. все работает. Затем решил сделать постраничную навигацию в выводимых данных. И тут возникла проблема: при переключении страниц сбрасывается выведеный контент
отправляем и получем данные
<script type="text/javascript" type="text/javascript">
$(document).ready(function(){
$('#mq').change(function(){
$('#myqsort').load("smq.php", {mq:$(this).val()},
function(){
});
});
});
</script>
<title></title>
</head>


<body>
<form ACTION="./smq.php" METHOD="POST" >
<select name="mq" id="mq" onchange="showOption(this)" >
<option value="1">Обсуждаемые</option>
<option value="2">Закрытые</option>
<option value="3">Без ответа</option>
</select>
</form>
<div id="myqsort"></div>
это собственно файл где филтруем, извлекаем из бд и создаем навигацию
<?
session_start();
$id=$_SESSION['id'];
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>
<?

$sq=$_POST['mq'];




mysql_query('SET OPTION CHARACTER SET utf8') or die( mysql_error() );
// Переменная хранит число сообщений выводимых на станице
$num = 2;
// Извлекаем из URL текущую страницу
$page = $_GET['page'];
// Определяем общее число сообщений в базе данных
$result = mysql_query("SELECT * FROM q WHERE user_id=('$id') AND sqsost=('$sq')");
$posts = mysql_num_rows($result);
// Находим общее число страниц
$total = intval(($posts - 1) / $num) + 1;
// Определяем начало сообщений для текущей страницы
$page = intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
// Вычисляем начиная к какого номера
// следует выводить сообщения
$start = $page * $num - $num;
// Выбираем $num сообщений начиная с номера $start
$result = mysql_query("SELECT * FROM q WHERE user_id=('$id') AND sqsost=('$sq') ORDER BY q_id LIMIT $start, $num");
// В цикле переносим результаты запроса в массив $postrow
while ( $postrow[] = mysql_fetch_array($result))
?>

<?php
echo "<table>";
for($i = 0; $i < $num; $i++)
{
echo "<tr>

<tr><td colspan=\"2\">".$postrow[$i]['qbody']."</td></tr>";
}
echo "</table>";
?>


<?php
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href= ./myq.php?page=1><<</a>
<a href= ./myq.php?page='. ($page - 1) .'><</a> ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' <a href= ./myq.php?page='. ($page + 1) .'>></a>
<a href= ./myq.php?page=' .$total. '>>></a>';

// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 2 > 0) $page2left = ' <a href= ./myq.php?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href= ./myq.php?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';
if($page + 2 <= $total) $page2right = ' | <a href= ./myq.php?page='. ($page + 2) .'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href= ./myq.php?page='. ($page + 1) .'>'. ($page + 1) .'</a>';

// Вывод меню
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;

?>

</body>
</html>






Ответы:
Студёная былина, боярин!
запрос фильтра делайте через get запросы, а в ссылках страниц добавляйте параметры фильтра


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.