Javascript.RU

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

Преобразование 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>

Последний раз редактировалось krum, 28.03.2013 в 09:53.
Ответить с цитированием
  #2 (permalink)  
Старый 28.03.2013, 10:13
Аспирант
Отправить личное сообщение для vashurin Посмотреть профиль Найти все сообщения от vashurin
 
Регистрация: 01.04.2008
Сообщений: 52

document.getElementsByTagName('form')[0].onsubmit=function(){
var uri = document.getElementById('id').value;
window.location = 'http://mysite.ru/modul/' +uri+'/';
return false;
}

А вообще поправьте модуль или .htaccess на сервере.

Последний раз редактировалось vashurin, 28.03.2013 в 10:15.
Ответить с цитированием
  #3 (permalink)  
Старый 28.03.2013, 10:21
Новичок на форуме
Отправить личное сообщение для krum Посмотреть профиль Найти все сообщения от krum
 
Регистрация: 28.03.2013
Сообщений: 4

Как раз дело в том, что это необходимо для ЧПУ. В .htaccess прописан ModRewrite. Так как я в JS совсем плох, подскажите плиз конкретную реализацию метода, описанного выше. Куда этот код вставить и как его использовать.

Последний раз редактировалось krum, 28.03.2013 в 10:33.
Ответить с цитированием
  #4 (permalink)  
Старый 28.03.2013, 11:34
Аспирант
Отправить личное сообщение для vashurin Посмотреть профиль Найти все сообщения от vashurin
 
Регистрация: 01.04.2008
Сообщений: 52

Сообщение от krum Посмотреть сообщение
Как раз дело в том, что это необходимо для ЧПУ. В .htaccess прописан ModRewrite. Так как я в JS совсем плох, подскажите плиз конкретную реализацию метода, описанного выше. Куда этот код вставить и как его использовать.
ну пропишите форме какое нибудь id, и поменяйте код на такой:

Код:
<form method="GET" id="someid" action="modul/">
<input type="text" name="id"></input>
<input type="submit" value="Найти">
</form>
<script>
document.getElementById('someid').onsubmit=function(){
var uri = document.getElementById('id').value;
window.location = 'http://mysite.ru/modul/' +uri+'/';
return false;
}
</script>
И все заработает... Хотя, это не лучшая реализация, лучше навешивание события обернуть в функцию и вызывать на событие загрузки DOM или загрузки страницы. Да, и еще б введенные пользователем данные проверять, на то, что введено .
Ответить с цитированием
  #5 (permalink)  
Старый 28.03.2013, 12:15
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

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>

Последний раз редактировалось rgl, 28.03.2013 в 12:17.
Ответить с цитированием
  #6 (permalink)  
Старый 28.03.2013, 12:29
Новичок на форуме
Отправить личное сообщение для krum Посмотреть профиль Найти все сообщения от krum
 
Регистрация: 28.03.2013
Сообщений: 4

Спасибо огромное! Вот этот совет помог -
Сообщение от rgl
Убрать из инпута name, тогда он не будет приписываться к урлу.
. Сделал так:
<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?

Последний раз редактировалось krum, 28.03.2013 в 12:42.
Ответить с цитированием
  #7 (permalink)  
Старый 28.03.2013, 12:42
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Сообщение от krum
А вот во втором совете, который вроде как удобнее, в конце выскакивает знак вопроса и нет закрывающего слэша:
Ну слэш добавить не сложно:
onsubmit="this.action+=this.elements[0].value+'/';"
а что делать с вопросом - не знаю.
Ответить с цитированием
  #8 (permalink)  
Старый 28.03.2013, 12:51
Новичок на форуме
Отправить личное сообщение для krum Посмотреть профиль Найти все сообщения от krum
 
Регистрация: 28.03.2013
Сообщений: 4

Получается, что знак вопроса встает как раз после слэша - 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

Последний раз редактировалось krum, 28.03.2013 в 13:18.
Ответить с цитированием
  #9 (permalink)  
Старый 28.03.2013, 13:34
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

onsubmit="window.location.assign(this.action+this. elements[0].value+'/');retun false;"
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка данных формы AJAX`ом? Jopses jQuery 4 20.02.2013 12:34
Добовление формы еще Kuklavod jQuery 2 03.11.2011 15:12
в модальном окне не работает скрипт проверки формы necroms jQuery 1 11.03.2011 15:14
Валидация формы dmsuslov jQuery 4 05.11.2010 16:12
Простая проверка формы. Добавить "динамики". Jurasmi Элементы интерфейса 3 07.04.2010 16:48