Преобразование GET запроса из формы
Добрый день! При отправке данных из формы методом GET я получаю в адресной строке запрос вида http://mysite.ru/modul/?id=8 а мне нужно получить http://mysite.ru/modul/8/ . Можно ли это как то реализовать при помощи JS?
<form method="GET" action="modul/"> <input type="text" name="id"></input> <input type="submit" value="Найти"> </form> |
document.getElementsByTagName('form')[0].onsubmit=function(){ var uri = document.getElementById('id').value; window.location = 'http://mysite.ru/modul/' +uri+'/'; return false; } А вообще поправьте модуль или .htaccess на сервере. |
Как раз дело в том, что это необходимо для ЧПУ. В .htaccess прописан ModRewrite. Так как я в JS совсем плох, подскажите плиз конкретную реализацию метода, описанного выше. Куда этот код вставить и как его использовать.
|
Цитата:
Код:
<form method="GET" id="someid" action="modul/"> |
1. Убрать из инпута name, тогда он не будет приписываться к урлу.
2. Чтобы не хардкодить имя сайта, можно сделать так: onsubmit="this.action+=this.elements[0].value;" <form method="GET" action="modul/" onsubmit="this.action+=this.elements[0].value;"> <input type="text" > <input type="submit" value="Найти"> </form> |
Спасибо огромное! Вот этот совет помог -
Цитата:
<form method="GET" id="someid" action="modul/"> <input id="val" type="text"></input> <input type="submit" value="Найти"> </form> <script> document.getElementById('someid').onsubmit=function(){ var uri = document.getElementById('val').value; window.location = 'http://mysite.ru/modul/' +uri+'/'; return false; } </script> А вот во втором совете, который вроде как удобнее, в конце выскакивает знак вопроса и нет закрывающего слэша: http://mysite.ru/modul/8? |
Цитата:
onsubmit="this.action+=this.elements[0].value+'/';" а что делать с вопросом - не знаю. |
Получается, что знак вопроса встает как раз после слэша - http://mysite.ru/modul/8/? Его можно как то вырезать?
<form method="GET" id="someid" action="modul/" onsubmit="this.action+=this.elements[0].value+'/';"> <input id="val" type="text"></input> <input type="submit" value="Найти"> </form> А если в инпуте оставить name, то тогда становится понятнее, откуда он взялся )) <form method="GET" id="someid" action="modul/" onsubmit="this.action+=this.elements[0].value+'/';"> <input name="id" type="text"></input> <input type="submit" value="Найти"> </form> На выходе получим - http://mysite.ru/modul/8/?id=8 |
onsubmit="window.location.assign(this.action+this. elements[0].value+'/');retun false;"
|
Часовой пояс GMT +3, время: 01:34. |