| |
|
|
| | Прошу подсказать.
Я сделал с помощью POST выбор данных из поля со списком и с последующим обновлением формы.
Теперь дошел до создания постраничной навигации. Использовал вариант из http://www.softtime.ru/info/articlephp.php?id_article=33.
Но когда я выбираю страницу, происходит, естественно, обновление страницы и при этом сбрасывается выбор, сделанный в поле со списком.
Можно ли как-нибудь этого избежать? | |
| |
|
|
| |
|
|
| |
для: Andrey_V
(27.01.2006 в 23:43)
| | | Можно. Для этого нужно приписать параметр к ссылке, в котором будет написан выбор пользователя.
А лучше приведите пример (форма, код обработчика) для более конкретного ответа. | |
| |
|
|
| |
|
|
| |
для: Саня
(28.01.2006 в 00:01)
| | | Прикладываю код. Подрезанный, конечно.
------------------------------------------------------------------------------------------------------------
<?php
global $page;
global $page2right;
global $page1right;
global $page2left;
global $page1left;
global $pervpage;
global $nextpage;
//Вывод галочки для выбора========================================
echo "<form name=vid_12 method=post>";
echo "<input type=checkbox name=vid_12 onclick='this.form.submit()'";
if (isset($_POST['vid_12'])) echo " checked";
echo ">";
if(empty($_POST['vid_12'])) $_POST['vid_12'] = 0;
//==============================================================
//Устанавливаем число записей на странице
$num = 2;
// Извлекаем из URL текущую страницу
$page = $_GET['page'];
// Определяем общее число сообщений в базе данных
$posts = 50;
// Находим общее число страниц
$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;
// Проверяем нужны ли стрелки назад
if ($page != 1) $pervpage = '<a href= primer?page=1><<</a>
<a href= primer?page='. ($page - 1) .''.'><</a> ';
// Проверяем нужны ли стрелки вперед
if ($page != $total) $nextpage = ' <a href= primer?page='. ($page + 1) .''.'>></a>
<a href= primer?page=' .$total. '>>></a>';
// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 2 > 0) $page2left = ' <a href= primer?page='. ($page - 2) .''.'>'. ($page - 2) .'</a> | ';
if($page - 1 > 0) $page1left = '<a href= primer?page='. ($page - 1) .''.'>'. ($page - 1) .'</a> | ';
if($page + 2 <= $total) $page2right = ' | <a href= primer?page='. ($page + 2) .''.'>'. ($page + 2) .'</a>';
if($page + 1 <= $total) $page1right = ' | <a href= primer?page='. ($page + 1) .''.'>'. ($page + 1) .'</a>';
// Вывод меню
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;
?>
-----------------------------------------------------------------------------
Запускаем. Ставим галочку. Переходим на другую страницу. Галочка исчезает. Когда исользуется без постраничной навигации (в реальном скрипте) - галочка остается на месте | |
| |
|
|
| |
|
|
| |
для: Andrey_V
(27.01.2006 в 23:43)
| | | Сразу после получения POST-данных, помещайте их в сессию (в суперглобальный массив $_SESSION) и далее везде работайте только с ней. Иначе постраничную навигацию не организуешь... | |
| |
|
|
| |
|
|
| |
для: cheops
(28.01.2006 в 12:24)
| | | А как это сделать в приведенном примере? | |
| |
|
|
| |
|
|
| |
для: Andrey_V
(28.01.2006 в 13:17)
| | | Что-то не соображу где у вас POST-данные используются... не могли бы вы направить? | |
| |
|
|
| |
|
|
| |
для: cheops
(28.01.2006 в 22:07)
| | | Я может быть что-то не так понимаю Или объясняю. Но в общем смысл в том, что надо, чтобы после обновления указанного скрипта галочка оставалась установленной | |
| |
|
|