Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.03.2009, 11:14
Интересующийся
Отправить личное сообщение для splean Посмотреть профиль Найти все сообщения от splean
 
Регистрация: 12.12.2008
Сообщений: 10

Подгрузка информера без перезагрузки страницы
Задача следующая: при выборе из списка города выводить соответствующий погодный информер Яндекса без перезагрузки страницы.

Ссылка на информер строится таким образом:
<a href="http://clck.yandex.ru/redir/dtype=stred/pid=7/cid=1228/*http://weather.yandex.ru/index.xml?city=_________">
<img src="http://info.weather.yandex.net/informer/150x150/_________.png" border="0" alt="Яндекс.Погода"/>
<img width="1" height="1" src="http://clck.yandex.ru/click/dtype=stred/pid=7/cid=1227/*http://img.yandex.ru/i/pix.gif" alt="" border="0"/></a>

Вместо _________ - числовой идентификатор города. Отсюда и пляшем:
<script>
var index = 0;
var value = '';
function setValue(select) {
  index = select.selectedIndex;
  if (index == 0 && value == '')
    return;
  else {
    value = select.options[index].value;
    document.getElementById('textfield').value = value;
  }
}
function selectValue() {
   document.getElementById('select').selectedIndex = 0;
}
</script>
<form id="form1" name="form1" method="post" action="">
  <select onclick="setValue(this);" name="select" id="select">
    <option value="22222">Город 1</option>
    <option value="22223">Город 2</option>
    <option value="22224">Город 3</option>
    <option value="22225">Город 4</option>
    <option value="22226">Город 5</option>
  </select>
  <br /><br />
  <input type="text" name="textfield" id="textfield" onkeydown="selectValue();" />
</form>



Задача состоит в том, чтобы вместо засовывания в этот текстовый input этих value, формировалась ссылка на информер, где вместо знаков подчеркивания ставился бы этот value. Ну и конечно же чтобы подгружался этот информер, а старый убирался. Вот именно последняя часть меня смущает и я не знаю что тут делать. Буду рад помощи)
Ответить с цитированием
  #2 (permalink)  
Старый 13.03.2009, 12:14
Интересующийся
Отправить личное сообщение для splean Посмотреть профиль Найти все сообщения от splean
 
Регистрация: 12.12.2008
Сообщений: 10

Наверное это в AJAX надо перенести.. в котором я ничегошеньки не понимаю(
Ответить с цитированием
  #3 (permalink)  
Старый 13.03.2009, 12:25
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,233

ну, во первых что трудного разобратся в AJAX?
на сайте есть достаточное количество статей, чтобы разобратся.

во вторых, тут AJAX как таковой не нужен
генерируйте текст информера, вставив в него ссылку подобающим образом.а потом полученный текст вставляйте в ... куда-нибудь
а точнее в innerHTML родительского элемента относительно старого информера.старый информер при этом затрется, а новый появится
Ответить с цитированием
  #4 (permalink)  
Старый 13.03.2009, 15:17
Интересующийся
Отправить личное сообщение для splean Посмотреть профиль Найти все сообщения от splean
 
Регистрация: 12.12.2008
Сообщений: 10

Ну, скажите, что трудного разобраться в 1C-Bitrix? Ведь есть подробные курсы, разжеванный API, все ведь описано. И тем не менее - кому то это не надо.

Мне хоть и надо, но пока занят другими вещами, и когда передо мной встает задача, с которой я не знаю как справляться, но которую нужно решить в относительно короткие сроки, я задаю вопрос тем, кто знает ответ. Очевидно, этот форум одно из тех мест, где я могу найти ответ.

Теперь по делу.

Считаем, что внутри
<div id="weather">
</div>

находится сам SELECT, а под ним картинка-ссылка вида
<a href="somedomain.ru/?id=VALUE"><img src="somedomain.ru/img/VALUE.png"></a>


При выборе элемента из списка должна произойти подстановка этого VALUE в ссылку, старый информер должен исчезнуть, новый загрузиться по сформированной ссылке, при этом страница не перезагружается.

Вот тут я ничего не понимаю.
Что нужно сделать в скрипте?
value = select.options[index].value;
    document.getElementById('weather').innerHTML = тутсформированнаяссылка?;
Ответить с цитированием
  #5 (permalink)  
Старый 13.03.2009, 15:24
Интересующийся
Отправить личное сообщение для splean Посмотреть профиль Найти все сообщения от splean
 
Регистрация: 12.12.2008
Сообщений: 10

В общем то
document.getElementById('weather').innerHTML = VALUE

выводит на месте этого дива этот самый Value.

Значит в innerHTML нужно записать ВСЕ, что находится в этом диве? Или может ссылку поместить в отдельный див какой нить.. попробую счас
Ответить с цитированием
  #6 (permalink)  
Старый 13.03.2009, 15:29
Интересующийся
Отправить личное сообщение для splean Посмотреть профиль Найти все сообщения от splean
 
Регистрация: 12.12.2008
Сообщений: 10

Прелестно. Спасибо за наводку, все получилось)
Ответить с цитированием
  #7 (permalink)  
Старый 13.03.2009, 15:31
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,233

пожалуйста
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать смену картинки, типа "до" и "после", без перезагрузки страницы? btstudio Events/DOM/Window 2 23.02.2009 20:43
Автообновление <div> без перезагрузки страницы Antihrist AJAX и COMET 14 28.07.2008 06:06