Переменные POST исчезают при нажатии на ссылку - PullRequest
0 голосов
/ 13 августа 2011

Я просто установил некоторые нумерации страниц для поиска, и поиск использует переменные POST, чтобы определить, что искать, и т. Д. В моем URL я могу установить смещение нумерации страниц, как этот поиск / OFFSET, и мои ссылки в ссылке на пагинацию там правильно , Однако, когда я нажимаю на ссылку, все переменные POST исчезают, даже если я явно установил их, чтобы я мог использовать их в следующем сценарии. Я использую codeigniter, и у меня отключен GET, и я действительно не хочу хранить эти 5-6 значений в сеансе, поскольку с тех пор он станет неуклюжим.

Полностью ли перезагрузка страницы приводит к перезагрузке страницы и удалению переменных POST?

Спасибо

Ответы [ 6 ]

2 голосов
/ 13 августа 2011

Да, нажатие на ссылку создает запрос GET, поэтому не сохраняет никаких данных POST. Хотя это технически возможно сделать с помощью JavaScript, это плохая идея.

Это вполне правильное использование GET, пожалуйста, прочитайте это более полное объяснение .

1 голос
/ 13 августа 2011

Есть ли у вас доступ к изменению вашей php-страницы, которая получает запрос?Вы можете настроить свои переменные так, чтобы они принимали либо GET, либо POST:

$defaultvalue='';//change this to '' or NULL or whatever you want
$searchQuery = (isset($_POST['s']) ? $_POST['s'] : (isset($_GET['s'])?$_GET['s']: $defaultvalue));

Тогда ваша php-страница будет лучше подготовлена ​​для обработки либо GET, либо POST

1 голос
/ 13 августа 2011

Да, нажатие на ссылку удаляет все переменные POST.

0 голосов
/ 13 августа 2011

Вы должны иметь возможность создать форму, которая передает некоторый набор переменных post в параметр action с переменными get. Таким образом, форма должна отправлять запрос на публикацию в http://www.somedomain.com/FormSubmit.php?pag=1&sort=asc. Это будет отправлять значения публикации этой формы вместе со значениями get строки. Если вы можете изменить свою ссылку на кнопку формы, вам будет хорошо идти.

0 голосов
/ 13 августа 2011

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

0 голосов
/ 13 августа 2011

Данные POST будут присутствовать только во время исходного запроса (т.е. они не сохраняются между запросами).Если вы хотите, чтобы данные сохранялись, используйте сеансы.Однако обычной практикой является использование GET для поисковых запросов и страниц.

...