Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> смена параметра в URL и обновление, в зависимости от выбранного select 
:(
    Опции темы
admin82
Дата 14.8.2007, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 22.8.2006

Репутация: нет
Всего: 1



Добрый вечер всем! Заканчиваю таск, и напоследок понадобился js, которого совсем не знаю. Выручайте, время разбираться нет.
Задача такая:
на странице есть select (без формы, т.е. НЕ в тегах <form></form>, если это важно):
Код

<select name = "viewBy" style="width: 60px;" onChange="viewBy()"><option>day</option><option>week</option><option>month</option></select>

Надо при выборе какого-либо пункта в url, который имеет вид
http:blablabla.jspa?fromDate=1%2F%D0%B0%D0%B2%D0%B3%2F07&toDate=31%2F%D0%B0%D0%B2%D0%B3%2F07&user=&group=administrators&account=&issuePriority=&issueType=&showDetails=false&viewBy=week&viewAll=true&startViewDate=&finishViewDate=&selectedProjectId=10000&reportKey=com.rencap.jira.report.time-sheet%3Atime-sheet-report&%D0%94%D0%B0%D0%BB%D0%B5%D0%B5=%D0%94%D0%B0%D0%BB%D0%B5%D0%B5#
заменить параметр "viewBy" на новый и перейти по новому урлу.

И вторая задача. На этой же странице есть ссылка. Мне по ее нажатии надо, чтобы выполнялась некая функция func(date) (date мне известна), и в этой функции параметр урла "startViewDate" менялся на date и осуществлялся переход на новый урл.

КАК? Ребята, выручайте, времени учить нет.


PM MAIL   Вверх
Exception
Дата 14.8.2007, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 1
Всего: 186



1)
Код
<select name="viewBy" onchange="viewBy (this.options [this.selectedIndex].value)">
    <option>day</option>
    <option>week</option>
    <option>month</option>
</select>

Код
function viewBy (period) {
    window.location.href.replace (/viewBy=[^&]*/, "viewBy=" + period);
}


Добавлено через 12 минут и 59 секунд
2) 
Код
<a href="#" onclick="relocate ()">
Код
function relocate () {
    var myDate = ...;
    window.location.href.replace (/startViewDate=[^&]*/, "startViewDate=" + myDate);
}

PM   Вверх
admin82
Дата 14.8.2007, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 22.8.2006

Репутация: нет
Всего: 1



Супер! Быстро и четко. 
Вот это 
Код

[^&]*/

мне совсем не понятно, но оно и неудивительно. Жаль, попробовать только завтра смогу. 
PM MAIL   Вверх
Exception
Дата 15.8.2007, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 1
Всего: 186



Мы заменяем в адресной строке регулярное выражение /viewBy=[^&]*/ на, например, viewBy=day или viewBy=month. Эта регулярка обозначает кусок урла от viewBy= до ближайшего амперсанда.
Кстати, я кое-что забыл. Сначала нужно проверять, есть ли вообще в строке данная последовательность.
Код
var query = window.location.search; // "?param1=val1&param2=val2"
if (query.indexOf ("viewBy=") == -1) // нет в строке такого
    query += ("&viewBy=" + period);
else
    query.replace (/viewBy=[^&]*/, "viewBy=" + period);
window.location.search = query;
Аналогично следует модифицировать и вторую функцию.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2491 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.