Я хочу выполнить поиск с разбивкой по страницам, но я не знаю, как «хранить» данные в массиве $ _POST, должен ли я делать это с помощью сеансов?
Rolensen
Я хочу выполнить поиск с разбивкой по страницам, но я не знаю, как «хранить» данные в массиве $ _POST, должен ли я делать это с помощью сеансов?
Rolensen
Да, вы можете использовать сессии или скрытые поля и даже лучший способ попасть в форму.
Строка запроса, полностью. Это единственный разумный способ получить закладки, назад/вперед и перезагрузить, чтобы работать интуитивно. Использование скрытых полей для построения строки запроса, конечно, жизнеспособно, просто используйте GET как метод в вашей форме. – falstro
Если вы выполняете поиск, вы пытаетесь получить данные с сервера, а не отправлять ему данные - это означает, что вы, вероятно, должны использовать GET
, а не POST
.
Кроме того, это позволит пользователям добавлять страницы результатов (или отправлять эти ссылки по электронной почте, IM, ...), что всегда приятно; и, кроме того, использовать назад/вперед кнопки браузера, не получая окно предупреждения, которое тоже приятно ^^
(Да, и, кстати, это помогло бы решить проблему ;-))
можно использовать как GET и POST в форме, просто добавьте соответствующий атрибут method
к form
тегу:
<form action="index.php?page=5" method="POST">
Так пейджера ссылки кнопки отправки в то время как остальные данные хранятся в скрытых полях. Но это не очень хороший способ сделать это, потому что вы не можете передать кому-то ссылку (например, на IM) на результаты поиска.
Но самый лучший способ для хранения где-то входные POST данные (смотрите здесь: http://www.symfony-project.org/plugins/, когда вы вводите ваш запрос один раз, она хранится и помнить, так что вам не нужно заполнить Форму несколько раз)
Могу ли я предложить вам не используйте пост для разбивки на страницы, это сделает невозможным закладку, перемещение с помощью кнопок «назад/вперед» и т. д., если вы не потянете некоторые действительно сложные трюки, чтобы заставить его работать. Вместо этого используйте GET. – falstro