Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Выбор изображения из списка (https://javascript.ru/forum/dom-window/35759-vybor-izobrazheniya-iz-spiska.html)

miles 21.02.2013 11:57

Выбор изображения из списка
 
Нужен скрипт, который автоматически изменяет изображение посредством выбора нужного через форму выпадающего списка.
Тоесть пользователь выбирает элемент в выпадающем списке, а изображение меняется в соответствии с тем элементом, которое выбрал пользователь в списке. Примерно вот так:

Такое часто можно встретить в интернет магазинах, но нужный скрипт я не смогу загуглить.
Заранее благодарен за любую помощь.

рони 21.02.2013 12:06

miles,
напишите html код -- селектор -- элемент в котором будет показана картинка -- желательно массив тестовый самих ссылок на картинки -- сделайте хотябы первые шаги.

miles 21.02.2013 13:53

Цитата:

Сообщение от рони (Сообщение 236037)
miles,
напишите html код -- селектор -- элемент в котором будет показана картинка -- желательно массив тестовый самих ссылок на картинки -- сделайте хотябы первые шаги.

Рони, спасибо за ответ и совет. Я так и сделал.
Вот результат того, что я смог сделать сам: http://fortesting.comli.com/calc/option1.html
Но возникли другие сложности.
  1. Нужно исходя из выбранных элементов подсчитать стоимость данного продукта. Например из трёх списков, пользователь выбрал первый, второй и первый элемент. допустим 1-ый элемент стоит 1$, а второй 2$. Тоесть сумма трёх выбранных элементов будет 1$+2$+1$ = 4$. Пользователю нужно вывести данную сумму. Задача простая, но я не знаю как осуществить её на java script. Пока добрался только до текущего момента.
  2. Я не могу создать правильно второй и третий массивы, которые бы позволили выбирать другое изображение во второй колонке и третьей, где выбирается размер и правая сторона элемента.

ksa 21.02.2013 13:57

Цитата:

Сообщение от miles
из трёх списков, пользователь выбрал первый, второй и первый элемент

Где тестовый пример с теми "списками"?

miles 21.02.2013 14:01

ksa,
http://fortesting.comli.com/calc/option1.html
Там три списка. Выбирая элемент каждого меняется изображение. Или я что-то не так понял?

ksa 21.02.2013 14:21

Цитата:

Сообщение от miles
Или я что-то не так понял?

Посмотри другие темы... Они просто изобилуют тестовыми примерами, которые прямо там же в сообщения можно запустить.

miles 21.02.2013 14:34

Вложений: 1
ksa,
Тоесть тебя не устраивает мой пример, посмотреть который можно нажав на ссылку? И каким-то образом мне нужно встраивать мой пример в сообщение?
Если лень нажать CTRL+U в примере, то вот сохранил в виде файла.

miles 21.02.2013 14:56

Вот код скрипта. Добавил несколько комментариев: http://pastebin.com/BMjzGhj4

ksa 21.02.2013 15:07

Цитата:

Сообщение от miles
посмотреть который можно нажав на ссылку?

Так что его смотреть-то? Его нужно как-то корректировать, дабы показать какой-то вариант решения...

рони 21.02.2013 15:11

miles, код лучше располагать здесь, так вам быстрее ответят.не особо понятно где три массива
Вариант ... (очередной дубликат зависимых селектов, которых множество на форуме)
<!DOCTYPE html>
<html>
<head>
  <title>Пример работы калькулятора</title>
  <meta charset="UTF-8">
</head>

<body>
  <table cols="2" width="40%">
    <tr>
      <th><select name="item">
        </select></th>

      <th><select name="item">
        </select></th>
    </tr>

    <tr>
      <th><img name="tool"></th>
      <th id="total">1$</th>
    </tr>
  </table>

  <form>

    <script  type="text/javascript">

    var base = [
    {   src : "http://javascript.ru/forum/images/smilies/thank_you2.gif",
        height : [1, 2, 3, 4],
        price : [1, 1, 1, 1],
        text : "Оплеточные рукава"
    },
    {   src : "http://javascript.ru/forum/images/smilies/dance3.gif",
        height : [1, 2, 3, 4, 5],
        price : [2, 2, 2, 2, 1],//за 5 метров скидка
        text : "Навивочные рукава"
    }
    ]


    var select = document.getElementsByTagName('select')[0];
    for (var k=0; k< base.length; k++)  {
           select.options[k] = new Option(base[k]['text'], k);
        }
    function init() {
        var i = this.selectedIndex || 0
        var img =  document.getElementsByTagName('img')[0]
        var src =  base[i]['src'];
        img.src = src;
        var select = document.getElementsByTagName('select')[1];
        select.options.length=0
        var height = base[i]['height'];
        var price = base[i]['price'];
        for (var k=0; k< height.length; k++)  {
           select.options[k] = new Option(height[k]+"м", height[k]*price[k]);
        }
        var total =  document.getElementById('total');
        total.innerHTML = height[0]*price[0]+"$"
    }
    select.addEventListener('change', init);
    init();
    select = document.getElementsByTagName('select')[1];
    function count()
    {
       var i = this.selectedIndex || 0;
       var value = this.options[i].value ;
       var total =  document.getElementById('total');
       total.innerHTML = value+"$"
    }
    select.addEventListener('change', count);
    </script>
  </form>
</body>
</html>


Часовой пояс GMT +3, время: 00:34.