2016-09-13 7 views
0

Я работаю над большим сайтом, и в нем есть фильтрация автомобилей. Я объясню, как работает фильтрация форм:Изменить форму отправки от GET to POST PHP

так что пользователь выбирает параметры фильтра, номер автомобиля и т. Д., И нажатие идет, что делает запрос GET на сервер (php), я изменил каждую переменную от $ _GET до $ _POST и изменил метод отправки формы, проблема в том, что когда форма возвращает большое количество элементов, она может иметь более 2 страниц, поэтому, когда пользователь нажимает на вторую или третью страницу, весь этот код добавляет номер страницы в запрос следующим образом: www .example.com/GET_REQUEST_VARIABLES -> www.example.com/pagenumber & GET_REQUEST_VARIABLES. Таким образом, сервер возвращает элементы второй страницы и так далее.

но когда я отправить запрос пост, не сохраняется в URL поэтому сервер не знает, что вернуться,

вы можете помочь мне решить эту проблему?

я могу объяснить лучше, если вы будете задавать вопросы, я не знаю, если я ясно объяснил здесь

+1

Вы говорите, что когда вы переходите на страницу 2, вы теряете все параметры, сохраненные в $ _POST? ИЛИ Что, когда вы переходите на страницу 2, нет страницы 2, потому что номер страницы не добавляется к URL-адресу? –

+1

Когда я перехожу на страницу 2, сервер теряет все переменные, которые я отправил перед использованием сообщения, он добавляет номер страницы, но не добавляет эти переменные, отправленные из сообщения, потому что его другой запрос – nikagar4

+0

Не могли бы вы сохранить переменные $ _POST в $ Переменная _SESSION? Это позволит им переносить со страницы на страницу. В противном случае звучит так, как будто вам нужно будет каждый раз обновлять информацию. Я бы рекомендовал $ _SESSION. – ckimbrell

ответ

1

Есть причина, вы используете POST вместо GET? Использование GET в этом случае более оптимизировано для SEO. И поскольку вы не отправляете конфиденциальные данные в форме отправки, я не вижу причины использовать POST. Еще одно преимущество использования GET заключается в том, что вы можете напрямую ссылаться на результаты поиска. (Например, если я ищу Honda Fit и хочу показать свою жену, у меня есть прямая ссылка на страницу)

(Посмотрите HERE для разметки разницы между опознаванием и отправкой).

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

Если вы не так много для MAN страниц, просто изменить все $ _GET [ 'FIELDNAME'] вызывает в PHP до $ _POST [ 'FIELDNAME']

Вы всегда можете открыть первую страницу и использовать GET ONLY для номера страницы. В том виде, просто ты бы это

<form method="post" action="www.foo.com/search?page=1"> 

Тогда вы можете хранить ваши публикуемую переменные в $ _SESSION супер-глобальной. БУМ. POSTed разбиение на страницы. Было бы легко сделать это «на лету» с PHP

$nextPageURL = 'www.foo.com/search?page=' . $_GET['page'] + 1; 
if($_GET['page'] !== '0'){ 
    $lastPageURL = 'www.foo.com/search?page=' . $_GET['page'] - 1; 
} 
+0

Причина, по которой я использую почтовый запрос, заключается в том, что запрос на получение иногда становится слишком большим, а сервер возвращает ошибку «большого url» – nikagar4

+0

да, вы правы, но что, если запрос будет больше в будущем? – nikagar4

+0

вы всегда можете увеличить свою длину, если это станет проблемой по линии. –

 Смежные вопросы

  • Нет связанных вопросов^_^