Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Отображение картинки по выбору имени из селекта


Автор: XClan 21.11.2006, 15:03
Мне бы пример кода динамического отображения картинки при выборе из комбобокса..
То есть реагирующий на сообытие onСhange в комбобоксе!

То есть выбрал 2 из листа - получаем id и отображаем картинку равное этому id рядом с комбобоксом!
Я просто тут искал и не нашел! Видимо надо как то по другому сформулировать тему для поиска...
спасибо

Автор: skyboy 21.11.2006, 15:24
Код

<img id="my_image">
<select onchange='document.getElementById("my_image").src="img/"+this.value;'>
<option value="1.gif">1</option>
<option value="2.gif">2</option>
<option value="3.gif">3</option>
<option value="4.gif">4</option>
</select>

Автор: XClan 21.11.2006, 16:18
Спасибо! Очень даже приятный и короткий код! 
Было бы еще интереснее мне узнать можно ли там 2 сначения помимо картинки загрузить? Например текст - описалово под картинкой?
Как я понял, тут два значения в onChange не пропихнешь!!!!

Автор: S.A.P. 21.11.2006, 16:46
Примерно так:
Код

<img id="my_image" />
<span id="descr"></span>
<select onchange='var data = eval(this.value); document.getElementById("my_image").src=data[0]; document.getElementById("descr").innerHTML=data[1];'>
<option value="['1.gif', 'opweweiwe']">1</option>
<option value="['2.gif', 'dfkjdhfsdfsd']">2</option>
<option value="['3.gif', 'ldkfsdfsd']">3</option>
<option value="['4.gif', 'sdoifsdufsd']">4</option>
</select>

Автор: XClan 21.11.2006, 17:18
Вообще супер пупер! Только вот innerHTML на что нужно заменить, чтобы получить линк на файл с текстом, который потом хорошо бы пропихнуть в include?

Что-то типа этого получить можно?? Или это не реально?
<? include id="descr"; ?>

Автор: S.A.P. 21.11.2006, 17:34
Если брать из файлов, тогда только запросами
Код

<script type="text/javascript">
<!--
function include(url)
{
    var http = window.XMLHttpRequest ?
        new XMLHttpRequest() :
        new ActiveXObject("Microsoft.XMLHTTP");
        
    http.open('GET', url, false);
    http.send(null);
    return http.responseText;
}
-->
</script>

<img id="my_image" />
<span id="descr"></span>
<select onchange='var data = eval(this.value); document.getElementById("my_image").src=data[0]; document.getElementById("descr").innerHTML=include(data[1]);'>
<option value="['1.gif', 'aaa.html']">1</option>
<option value="['2.gif', 'bbb.html']">2</option>
<option value="['3.gif', 'ccc.html']">3</option>
<option value="['4.gif', 'ddd.html']">4</option>
</select>

Автор: 12345c 21.11.2006, 17:36
С машиной времени возможно. include делается на сервере, а потом JS на клиенте.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)