переделать GET запрос
есть некая форма, она отправляет 3 переменные в GET запрос
a1=pole1&a2=pole2&a3=pole3 собственно нужно, чтобы форма отправляла запрос вида a=pole1+pole2+pole3 |
поясни смысл осуществления этой операции
думаю никак не отправить нужный тебе параметр, если ты хочешь вмешаться в последствия отправки формы, не вмешавшись в код этой отправки хотя может есть способ так никак, 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> |
спасибо.
мне последний вариант должен подойти. только вместо "+" в строке браузера "%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> он запрос не совсем понимает. выводит надпись результаты по запросу и сам текст запроса нормально. а вот сами результаты ищет только когда в урле "+" подскажите, как исправить? |
Перехватить отправку
<form onsubmit="MyFunk();return false;" В функции считать значения полей var dataSend = $("#Myform").serialize( ); Конвертировать как надо и отправить Get запросом |
Цитата:
я только начинаю и на примере мне гораздо понятнее. заранее спасибо. |
Цитата:
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> |
Вложений: 1
Цитата:
хочется убрать поле ввода тегов и сделать что то вроде этого |
Цитата:
Цитата:
|
Цитата:
Сгенерить div c радио кнопками и просто кнопкой "найти", - по клику на которую, - будут считаны значения радиокнопок и вставлены в старую форму. |
Цитата:
<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 |
мне этот вариант больше нравится, только не + в пробел, а наоборот пробел в + превращается.
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Я тут сомневаюсь на счет приеёма + в get отправке
В принципе при отправке строка сериализуется(и плюсы тожа), так что лучше все таки новые параметры засунуть в старую форму, и отправить программным субмитом |
Цитата:
Deff, лучше узнать что у него за поиск, мои экстрасенсорные возможности уже иссякли :D |
Ну пусть PHP обработчик выкладывает
|
Цитата:
+ через адресную строку, как я полагаю, может уйти только как пробел |
bes,
Лан - я поэкстрасенсорю Думаю он хочет приплюсовать радиополя к пустым инпутам, Собственно ранее он вбивал породу собаки - а теперь хочет воткнуть радиокнопкой, для этого в радио должен быть полный value c полным старым запросом в input |
Видю Там кошки - собаки и пол |
Deff, а я предполагаю, что ему нужно
либо это http://javascript.ru/decodeURIComponent либо это http://www.php.su/urldecode теперь твоя очередь :D |
bes,
В jQuery есть $("#Myform").serialize( ); которое уже дает данные в GET отправке , останецо ток добавить action |
iluxinil,
Приведите два вида запроса ( скриншоты) Как Вы по старому искали кошек - собак |
Цитата:
|
Часовой пояс GMT +3, время: 09:56. |