Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.05.2013, 19:34
Новичок на форуме
Отправить личное сообщение для iluxinil Посмотреть профиль Найти все сообщения от iluxinil
 
Регистрация: 17.05.2013
Сообщений: 6

переделать GET запрос
есть некая форма, она отправляет 3 переменные в GET запрос
a1=pole1&a2=pole2&a3=pole3

собственно нужно, чтобы форма отправляла запрос вида
a=pole1+pole2+pole3
Ответить с цитированием
  #2 (permalink)  
Старый 18.05.2013, 00:57
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

поясни смысл осуществления этой операции


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

так никак, location.search новыми параметрами не заполнить, location.search изменяется после отправки формы, onunload не помогает, хотя здесь пишут, что можно http://javascript.ru/window-location (извращался по-всякому, у меня не вышло)

в нененавязчивом стиле some.php
<script>
function sendMyParam() {
	var str1 = '?my_param=my_value';
	var str2 = location.href.replace(location.search, '') + str1;
	location = str2
	window.location.search = '?my_param=my_value'; 
	console.log(str2);
	console.log("location.search=" + location.search);
}
</script>

<body onbeforeunload="return ''" onunload="sendMyParam()">
<form action"<?=$_SERVER['PHP_SELF']?>" onsubmit="sendMyParam()">
	<input name="a" value="pole">
	<input type="submit">
</form><br>

<?php
if (isset($_GET['my_param'])) echo $_GET['my_param']; else echo "no<br>";
if (isset($_GET['a'])) echo $_GET['a']; else echo "no";
?>



и так никак, хотя action меняется, параметр не приходит
<body onbeforeunload="return ''">
<?php
if (isset($_GET['my_param'])) echo "my_param=".$_GET['my_param'].'<br>'; else echo "no my_param<br>";
if (isset($_GET['a'])) echo "a=".$_GET['a'].'<br>'; else echo "no a<br>";
?>
<form action"some.php" onmousedown="this.action='some.php?my_param=my_value'"
	onsubmit="this.action='some.php?my_param=my_value'; return false">
	<input name="a" value="pole">
	<input type="submit">
</form>



но можно убрать name у полей и отправить в <input type="hidden"> value, которое сформировать так как тебе нужно

<body onbeforeunload="return ''">
<?php
if (isset($_GET['my_param'])) echo "my_param=".$_GET['my_param'].'<br>'; else echo "no my_param<br>";
if (isset($_GET['a'])) echo "a=".$_GET['a'].'<br>'; else echo "no a<br>";
?>
<form action"<?=$_SERVER['PHP_SELF']?>" onsubmit="this.my_param.value='my_value+' + this.a.value">
	<input name="a" value="pole">
	<input name="my_param" type="hidden">
	<input type="submit">
</form>

Последний раз редактировалось bes, 18.05.2013 в 01:05.
Ответить с цитированием
  #3 (permalink)  
Старый 18.05.2013, 14:44
Новичок на форуме
Отправить личное сообщение для iluxinil Посмотреть профиль Найти все сообщения от iluxinil
 
Регистрация: 17.05.2013
Сообщений: 6

спасибо.
мне последний вариант должен подойти.

только вместо "+" в строке браузера "%2B"
в оригинальном запросе "+" остается. а в моем нет.

<form action"<?=$_SERVER['PHP_SELF']?>" onsubmit="this.my_param.value=this.a1.value + '+' + this.a2.value">
	    <input name="my_param" type="hidden">
        <input name="a1" value="pole1">
        <input name="a2" value="pole2">
	    <input type="submit">
	</form>


он запрос не совсем понимает.
выводит надпись результаты по запросу и сам текст запроса нормально.
а вот сами результаты ищет только когда в урле "+"

подскажите, как исправить?

Последний раз редактировалось iluxinil, 18.05.2013 в 14:56.
Ответить с цитированием
  #4 (permalink)  
Старый 18.05.2013, 15:51
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Перехватить отправку
<form onsubmit="MyFunk();return false;"

В функции считать значения полей
var dataSend = $("#Myform").serialize( );
Конвертировать как надо и отправить Get запросом
Ответить с цитированием
  #5 (permalink)  
Старый 18.05.2013, 16:29
Новичок на форуме
Отправить личное сообщение для iluxinil Посмотреть профиль Найти все сообщения от iluxinil
 
Регистрация: 17.05.2013
Сообщений: 6

Сообщение от Deff Посмотреть сообщение
Перехватить отправку
<form onsubmit="MyFunk();return false;"

В функции считать значения полей
var dataSend = $("#Myform").serialize( );
Конвертировать как надо и отправить Get запросом
а можно на примере.
я только начинаю и на примере мне гораздо понятнее.
заранее спасибо.
Ответить с цитированием
  #6 (permalink)  
Старый 18.05.2013, 20:39
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от iluxinil
он запрос не совсем понимает.
выводит надпись результаты по запросу и сам текст запроса нормально.
а вот сами результаты ищет только когда в урле "+"
он это кто? поясни подробно, что делаешь (второй раз прошу)

Deff имеет в виду отправить форму ajax-м

в том же нененавязчивом стиле
<script src="jquery-1.8.3.min.js"></script>
<body onbeforeunload="return ''">
<?php
if (isset($_GET['my_param'])) echo "my_param=".$_GET['my_param'].'<br>'; else echo "no my_param<br>";
if (isset($_GET['a'])) echo "a=".$_GET['a'].'<br>'; else echo "no a<br>";
?>
<form class="myForm" action"<?=$_SERVER['PHP_SELF']?>" 
	onsubmit="$.get('some.php', {my_param: this.a1.value + '+' + this.a2.value}, function (data) {alert(data)}); return false">
	<input name="my_param" type="hidden">
	<input name="a1" value="pole1">
	<input name="a2" value="pole2">
	<input type="submit">
</form>


PS: + может превращаться в пробел
<body onbeforeunload="return ''">
<?php
if (isset($_GET['my_param'])) echo "my_param=".$_GET['my_param'].'<br>'; else echo "no my_param<br>";
if (isset($_GET['a'])) echo "a=".$_GET['a'].'<br>'; else echo "no a<br>";
?>
<form class="myForm" action"<?=$_SERVER['PHP_SELF']?>" onsubmit="this.my_param.value=this.a1.value + ' ' + this.a2.value">
	<input name="my_param" type="hidden">
	<input name="a1" value="pole1">
	<input name="a2" value="pole2">
	<input type="submit">
</form>

Последний раз редактировалось bes, 18.05.2013 в 20:49.
Ответить с цитированием
  #7 (permalink)  
Старый 18.05.2013, 21:32
Новичок на форуме
Отправить личное сообщение для iluxinil Посмотреть профиль Найти все сообщения от iluxinil
 
Регистрация: 17.05.2013
Сообщений: 6

Сообщение от bes
он это кто? поясни подробно, что делаешь (второй раз прошу)
он это поиск по сайту (по тегам) как раз принимает строку вида a=teg1+teg2
хочется убрать поле ввода тегов и сделать что то вроде этого
Изображения:
Тип файла: jpg poisk.JPG (11.8 Кб, 2 просмотров)
Ответить с цитированием
  #8 (permalink)  
Старый 18.05.2013, 21:34
Новичок на форуме
Отправить личное сообщение для iluxinil Посмотреть профиль Найти все сообщения от iluxinil
 
Регистрация: 17.05.2013
Сообщений: 6

Сообщение от bes
Deff имеет в виду отправить форму ajax-м
сложновато пока это для меня, но попробую разобраться.

Сообщение от bes
PS: + может превращаться в пробел
так мне надо чтобы именно + оставался.
Ответить с цитированием
  #9 (permalink)  
Старый 18.05.2013, 21:56
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от iluxinil
хочется убрать поле ввода тегов и сделать что то вроде этого
Тогда Вам удобнее скрыть старую форму/если нет возможности трансформировать РНР приём формы нового вида/,
Сгенерить div c радио кнопками и просто кнопкой "найти", - по клику на которую, - будут считаны значения радиокнопок и вставлены в старую форму.

Последний раз редактировалось Deff, 18.05.2013 в 22:04.
Ответить с цитированием
  #10 (permalink)  
Старый 18.05.2013, 22:05
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от iluxinil
он это поиск по сайту (по тегам) как раз принимает строку вида a=teg1+teg2
покажи код поиска, тогда можно будет рассуждать

<body onbeforeunload="return ''">
<?php
if (isset($_GET['my_param'])) echo "my_param=".$_GET['my_param'].'<br>'; else echo "no my_param<br>";
if (isset($_GET['a'])) echo "a=".$_GET['a'].'<br>'; else echo "no a<br>";
?>
<form class="myForm" action"<?=$_SERVER['PHP_SELF']?>" onsubmit="this.my_param.value=this.a1.value + '+' + this.a2.value">
	<input name="my_param" type="hidden">
	<input name="a1" value="pole1">
	<input name="a2" value="pole2">
	<input type="submit">
</form>
<script>
console.log(location.search);
console.log(unescape(location.search));
</script>

http://javascript.ru/encodeuricomponent

Последний раз редактировалось bes, 18.05.2013 в 22:13.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как оборвать на сервере и клиенте запрос если у клиента пропала сеть. beard AJAX и COMET 3 21.12.2012 16:35
AJAX запрос в Internet Explorer срабатывает через раз nikolayseo jQuery 5 13.11.2012 00:13
Запрос на сервер Serjuk AJAX и COMET 6 04.06.2012 03:09
POST запрос воспринимается как OPTIONS neshta AJAX и COMET 0 29.03.2011 23:34
Запрос - ответ(VK,json) Slawaq Серверные языки и технологии 4 25.09.2010 00:28