Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Post и Get совместно
 
 автор: Andrey_V   (27.01.2006 в 23:43)   письмо автору
 
 

Прошу подсказать.
Я сделал с помощью POST выбор данных из поля со списком и с последующим обновлением формы.
Теперь дошел до создания постраничной навигации. Использовал вариант из http://www.softtime.ru/info/articlephp.php?id_article=33.
Но когда я выбираю страницу, происходит, естественно, обновление страницы и при этом сбрасывается выбор, сделанный в поле со списком.
Можно ли как-нибудь этого избежать?

   
 
 автор: Саня   (28.01.2006 в 00:01)   письмо автору
 
   для: Andrey_V   (27.01.2006 в 23:43)
 

Можно. Для этого нужно приписать параметр к ссылке, в котором будет написан выбор пользователя.

А лучше приведите пример (форма, код обработчика) для более конкретного ответа.

   
 
 автор: Andrey_V   (28.01.2006 в 10:51)   письмо автору
 
   для: Саня   (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;
?>
-----------------------------------------------------------------------------
Запускаем. Ставим галочку. Переходим на другую страницу. Галочка исчезает. Когда исользуется без постраничной навигации (в реальном скрипте) - галочка остается на месте

   
 
 автор: cheops   (28.01.2006 в 12:24)   письмо автору
 
   для: Andrey_V   (27.01.2006 в 23:43)
 

Сразу после получения POST-данных, помещайте их в сессию (в суперглобальный массив $_SESSION) и далее везде работайте только с ней. Иначе постраничную навигацию не организуешь...

   
 
 автор: Andrey_V   (28.01.2006 в 13:17)   письмо автору
 
   для: cheops   (28.01.2006 в 12:24)
 

А как это сделать в приведенном примере?

   
 
 автор: cheops   (28.01.2006 в 22:07)   письмо автору
 
   для: Andrey_V   (28.01.2006 в 13:17)
 

Что-то не соображу где у вас POST-данные используются... не могли бы вы направить?

   
 
 автор: Andrey_V   (28.01.2006 в 22:25)   письмо автору
 
   для: cheops   (28.01.2006 в 22:07)
 

Я может быть что-то не так понимаю Или объясняю. Но в общем смысл в том, что надо, чтобы после обновления указанного скрипта галочка оставалась установленной

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования