Как не передавать лишние параметры GET формой

botan-limon

Новичок
Как не передавать лишние параметры GET формой

Ситуация такая: есть форма с двумя полями ввода и картинкой по щелчке на которой осуществляется переход на страницу с выбранными параметрами.

Передается вот что type=all&region=0&search.x=10&search.y=6

нужно чтобы не было последних search.x=10&search.y=6 от картинки

как это сделать?
 

Фанат

oncle terrible
Команда форума
и при чем здесь пэхапэ?
можешь отправлять форму яваскриптом

-~{}~ 12.06.07 16:00:

filipchuk
потому что поиск
 

filipchuk

Новичок
если поиск, то при щелчке на кнопку отправлять POST, а уже при выводе номеров страниц (я так понял, что постраничная разбивка) уже использовать GET, и в GET параметры уже дописывать то, что нужно. Разве так нельзя сделать?
 

filipchuk

Новичок
если нужен GET, то рисунок делай не как сабмит, а как обычный IMG, и на событие onClick делай отправку формы
 

maxru

МИФИст
Можно еще параметр name="search" убрать у тэга <input name="search" type="image"/>
 

Crazy

Developer
Re: Как не передавать лишние параметры GET формой

Автор оригинала: botan-limon
нужно чтобы не было последних search.x=10&search.y=6 от картинки
Зачем? Вопросы эстетики, понятное дело, не обсуждаем.
 

fog

Рыцарь Джедай
Автор оригинала: SiMM
А что мешает сделать последующий редирект?
1. у некоторых пользователей редирект блокируется
2. это задержка
3. в ИЕ лишний звук обновления страницы
4. вообще не прямые ссылки сакс

-~{}~ 13.06.07 11:58:

Мне лично идея отправлять форму скриптом не нравится, предлагаю сделать наоборот, отправлять форму обычными средствами, а ненужные поля перед отправкой отключить с помощью JS. Таким образом, даже если у пользователя JS отключен - форма всё равно будет отправлена.

Код:
<?

print_r($_GET);

?>


<script language="JavaScript">

	function pre_post()
	{
		document.getElementById('imgf').disabled = true;
		document.getElementById('f2').disabled = true;
	}

</script>

<form action="<?=$_SERVER['PHP_SELF']?>" method="GET" onSubmit="pre_post()">
	<input type="text" name="field_1" id="f1">
	<input type="text" name="field_2" id="f2">
	<input type="image" id="imgf">
</form>

В этом примере в URL появится только поле field_1, соответственно, только оно и передасться скрипту.


Проверил в Opera, IE, FF - вроде работает везде.

Минус вижу пока только один - если отправка формы будет отменена (пользователь нажмёт STOP) то поля останутся неактивными. Но и это можно победить при желании.
 

Alkinoy

Начинающий
а чем мешают лишние данные? их не так много, что бы это сказывалось на скорости передачи....
 

Crazy

Developer
Alkinoy, автор старательно не замечает этого вопроса. Так что вывод очевиден: это блажь.
 

Фанат

oncle terrible
Команда форума
fog
ты сейчас написал очень редкую фигню.
по пунктам.
редирект - это заголовок Location
поэтому:
1.у этих пользователей не будет работать практически ни один сайт в интернете - в том числе и этот форум.
2. никаких задержек.
3. никаких звуков
4. никаких непрямых ссылок

код твой никому не поможет, поскольку вопроса ты не понял.

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

fog

Рыцарь Джедай
Фaнaт,

1. Это дело самих пользователей.
2. Задержки по сравнению с прямой ссылкой (пусть и минимальной) не быть не может.
3. Да, звука дествительно не будет, ошибся.
4. Так редаирект или прямая ссылка, или ты утверждаешь, что это одно и то же?

В общем, автор темы задал вопрос - в моём примере его проблема была решена очень простым способом, что ещё нужно?

Кроме того, такое изменение можно внести в шаблоне без вмешательства в PHP код вообще.
 

boombick

boombick.org
fog
в моём примере его проблема была решена очень простым способом
ты правда думаешь, что удаление гландов через задницу с помощью дорожно-ремонтных приспособолений - это очень простой способ? Если ты работаешь программистом, то мне жаль твоих работодателей :)
 

Фанат

oncle terrible
Команда форума
fog
решение твое нормальное.
но вот про редирект ты не знаешь ничего, и написал полную фигню. делать этого не стоило
я один, а вас много.
и каждому объяснять его косяки, терпение кончается очень быстро.
с тобой - последняя итерация.
1. вот именно. так что это проблема не программиста.
2. за слово скорость, задержки или производительность, я скоро начну убивать. ты не там ищешь скорость. и задержки о которых ты говоришь, никак не являются препятствием делать ччто угодно.
4. Я не знаю, что ты имеешь в виду под кривой ссылкой - видимо, какие-то свои фантазии, но то, что адресная строка не будет отличаться ни до отправки формы, ни после - это факт.
 
Сверху