Сохранить значения формы после перезагрузки страницы, нажав гиперссылку - PullRequest
2 голосов
/ 02 февраля 2012

Я пытаюсь добавить функцию подкачки на страницу элементов поиска.поэтому я добавил пейджер с UL как

echo '<ul>';
for($i=1; $i<=$pageCount; $i++)
{
    echo '<li><a href="' . $_SERVER['PHP_SELF'] . '?page=' . $i . '">' .  $i . '</a>';
}
echo '</ul>';

Когда я нажимаю на страницу № в пейджере, я могу получить номер страницы, нажав на

if (isset($_GET['page']))
{
    $pageNo = $_GET['page'];
}

, но яне может сохранить текст, введенный пользователем для поиска предметов.Я пытался $_POST['txtSearchText'], но он не сохраняет значение после обновления страницы.

Есть ли способ сохранить значения from (без использования сеанса) после самостоятельной загрузки страницы по гиперссылкенажмите

Ответы [ 3 ]

6 голосов
/ 02 февраля 2012

Ваши ссылки будут отправлены на скрытую форму с параметрами поиска, либо вы будете сериализовывать их в виде параметров в строку запроса для отправки вместе с номером страницы.

В первом случае вам необходим Javascript (поэтому ваша ссылка «А» фактически установит скрытое поле в форме с соответствующим номером страницы, на который нужно перейти, и отправит форму).Во втором случае вам это не нужно, но вы делаете строку запроса менее удобной для человека.

В противном случае есть сеанс (вы можете сохранить свой поиск в объекте сеанса и, возможно, использовать токен в своих страницах подкачки, чтобы открыть сразу несколько страниц) или даже куки.

2 голосов
/ 02 февраля 2012

Если вы используете GET-запросы, вы можете просто добавить поисковый запрос к ссылке:

echo '<ul>';
for($i=1; $i<=$pageCount; $i++)
{
    echo '<li><a href="' . $_SERVER['PHP_SELF'] . '?page=' . $i . '&query='.url_encode($search_query).'">' .  $i . '</a>';
}
echo '</ul>';

Если вы хотите использовать POST-запросы, вы должны отправить форму, как сказал @Palantir, или использовать AJAX..

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

0 голосов
/ 02 февраля 2012

Для поисковой подкачки на основе GET я создаю класс «Params», который включает в себя, среди прочего, следующие методы: readURLParams и generateURLParams. Он также содержит переменную-член для каждого потенциального параметра, такого как условия поиска, местоположение, номер страницы, фильтры и т. Д. При загрузке страницы вы сначала запускаете «readURLParams», который считывает все параметры GET в переменные-члены объекта. Когда вы будете готовы создать ссылки для функции подкачки, вы затем запустите genereateURLParams, который создаст строку URL, которую вы добавите к ссылке подкачки.

Теперь вам больше не нужно вручную отслеживать все параметры URL, и вы можете добавить дополнительные функции в класс, если вы хотите изменить свой метод на POST или какую-либо другую форму передачи параметров.

...