Сабмит формы и передача методом GET

Mishanja

Новичок
Сабмит формы и передача методом GET

Добрый день!

Столкнулся с проблемой.

Есть форма поиска, которая передается скрипту методом POST.

Поиск даже работает и выдает результаты.

В этих результатах - список найденного добра. У каждой единицы добра есть кнопка "Добавить в корзину". При нажатии на такую кнопку методом GET передается id соответствующего добра.

Но после нажатия страничка обновляется и ессесно теряются все результаты поиска (т.к. форма становится пустой и POST больше ничего не содержит)

Так вот вопрос.

Возможно ли комбинировать GET и POST таким макаром, чтобы по нажатию на кнопку "Добавить в корзину" сабмитилась форма поиска и методом POST передавались соотв. данные (в форму уже автоматом подставляются значения предыдущего запроса) и плюс к этому методом GET (в адресной строке) передавался бы ID соотв. добра.

Пробовал делать всю страничку как одну форму и писать картинке onClick="this.form.submit()" но ниччо не работало.


Заранее благодарю.
 

Кром

Новичок
Поставь пользователю куку и положи туда параметры поиска. При возвращении на страницу поиска проверяй куку и если найдешь в ней данные делай запрос к базе или тащи результаты поиска из кеша.
 

Mishanja

Новичок
хотелось бы без кукисов.

Как тащить результаты поиска из кэша?
 

Кром

Новичок
>хотелось бы без кукисов.

Хотелось бы услышать объективную причину почему тебя не устраивают куки.

>Как тащить результаты поиска из кэша?

Любым удобным для тебя способом. Зависит от реализации кэша.
 

Mishanja

Новичок
_vampiro_

ты можешь дельное сказать что-то? или чего лезть тогда?

-~{}~ 28.06.06 14:14:

Кром

Кукисы не хочу пользовать потому как изначально строится проект не зависымим от кукисов. То есть если они есть - хорошо, если их нет - не должно быть убийством.

На данном этапе кэш не реализован никак.

Существуют какие-нибудь еще варианты?

В принципе возможно вообще передавать POST и GET одновременно?
 

_vampiro_

Новичок
Mishanja
Могу, но сложно сказать что-то дельное, не зная от чего еще "не зависим" проект.

Кстати, в качестве маразма - может передавать "id соответствующего добра" методом POST, а? Или это тоже не возможно? :(
 

Кром

Новичок
Кукисы не хочу пользовать потому как изначально строится проект не зависымим от кукисов. То есть если они есть - хорошо, если их нет - не должно быть убийством.
Это все ерунда, на самом деле. :) Как ты будешь потом таскать за пользователем его корзину? Через весь сайт постом гонять? Иди прилеплять к каждой ссылке? Тха-ха!

Делай куки.

-~{}~ 28.06.06 13:23:

>На данном этапе кэш не реализован никак.

Ну значит на данном этапе делай каждый раз запрос к базе. Потом когда база разрастется и начнет тормозить, приделаешь кэш.
 

Bermuda

Новичок
Mishanja
Самое простое решение это использовать GET при сабмите поиска. Полученный урл можно таскать сколько будет нужно.

Как побочный плюс использования GET: можно послать ссылку на результаты поиска. Фанаты POST пусть посмотрят на гугл и яндекс, например в результатах поиска на яндексе ссылки "Новости", "Маркет" и т. д.
 

Кром

Новичок
Mishanja, ты над нами издевашся? :) Положи данные запроса ту да же.
 

Mishanja

Новичок
_vampiro_

Спасибки за дельный совет. Я тож думал так сделать, ежели тут ничего более элегантного не подскажут. Просто уже все сделано и все работает хорошо. Осталось только поиск до конца реализовать. Думал мож без особой переделки удастся проблемку эту обойти.

Кром

Кром в базе не более 750 единиц добра планируется держать. Который разбит на 20 примерно категорий. На странице более 35 единиц никогда не буит. Одновременных запросов к базе более 20 в час не ожидается. Так что как-то о кэше не задумывались. Но может просто не опытные.

-~{}~ 28.06.06 14:36:

Кром

Не издеваюсь :) Просто чё-та я не подумал про сессии.
 

Кром

Новичок
Mishanja по твоему
>может передавать "id соответствующего добра" методом POST
это дельный совет? _vampiro_ бредит, не слушай его.

Bermuda, фанаты POST смотрели google. Там структура сайта иная.
 

Mishanja

Новичок
Кром

Ну а что оставалось бы делать если бы не было ни кукисов ни сессий?
Просто я ступил, о сессиях позабыл совсем.
 

Кром

Новичок
_vampiro_ что там написано, я вижу. Только это не мешает другим подхватывать твои предложение на ура.

Сессии, конечно, будут глючить только в глючных руках. Других глюков с сессиями на данный момент не замечено.
 

_vampiro_

Новичок
Кром
я готов поспорить, что он уже сейчас пробует сохранять поиск в сессии примерно таким методом:
PHP:
$_SESSION['search']=$_POST;
,

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

Кром

Новичок
>Ну а что оставалось бы делать если бы не было ни кукисов ни сессий?

Оставалось развести руками и сказать: "Я отказываюсь работать в таких условиях!!!"

-~{}~ 28.06.06 14:05:

_vampiro_
В твоем примере я не вижу никакого глюка с сессиями. Программист получит ровно то, что он хочет получить.
 

Mishanja

Новичок
В общем спасибо всем. Уже сделали в сессиях. Все работает и никаких глюков не замечено.
 

_vampiro_

Новичок
Кром
Не верю!
-я зашел на сайт магазига. Меня интересуют зонты для всей семьи Дочка просила красный, а я мы с женой- черные.
- открываю страничку "поиск по параметрам" в новом окне. Выбираю там "цвет-черный". тычу "поиск. (в сессию записались параметры)
- открываю вторую страничку, вбиваю там цвет "красный". тычу "поиск". (параметры первого поиска успешно умерли и в сессии лежат "красные зонты")
-Пока грузится страничка со вторым поиском, на первой подбираю зонт себе.. тычу "ОК"... и меня кидает на красные зонты. А как же жена? :)))
----
Кто кому должен рассказывать... :) "На форуме с: Sep 2002"(с)
 
Сверху