Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Dropdown и массивы - как совместить? (https://javascript.ru/forum/misc/37901-dropdown-i-massivy-kak-sovmestit.html)

Verzicht 13.05.2013 12:44

Dropdown и массивы - как совместить?
 
Друзья, нужна помощь. Товарищ попросил меня помочь им с сайтом, там есть некий калькулятор расчета.
Вот с ним то я и туплю, т.к. Java для меня - тёмный лес.

К примеру, мы имеем следующую банальную форму:
<form action="" name="Calc" id="Calc" method="post" class=""><label>Машина</label><select size="1" class="" title="" name="input_select_1">
<option value="HND">Hyundai</option>
<option value="VLV">Volvo</option>
<option value="VAZ">ВАЗ</option>
</select>
<label for="days">Дни</label><input id="days" maxlength="150" size="30" class="" title="" type="text" value="" name="days" />
<input name="input_submit_4" class="" value="Submit" type="submit" />
</form>


А также несколько массивов:
var HND = ["2350", "2290", "2190", "2000", "2180"];
var VLV = ["2150", "2090", "2000", "1900", "1600"];
var VAZ = ["2000", "1850", "1700", "1600", "1450"];


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

К примеру,
для значения input меньше 10 берет первое значение из массива
от 10 до 100 - второе значение из массива
от 100 до 500 - третье значение из массива
от 500 до 600 - четвертое значение из массива
от 600 до 1000 - пятое значение из масива.

К примеру, пользователь выбрал в select VOLVO и ввёл в input 550. Функция выбирает массив VLV (согласно выбранному select). Из массива берет 1900 (т.к 550 больше 500 и меньше 600). Затем выводит на экран результат умножения 550 на 1900.

Логику понимаю, но со знанием языка проблемы. Кто-нибудь может подсказать?

tsigel 13.05.2013 12:54

Ключевые слова для гугления:
javascript switch

danik.js 13.05.2013 13:18

var data = {
    HND : ["2350", "2290", "2190", "2000", "2180"],
    VLV : ["2150", "2090", "2000", "1900", "1600"],
    VAZ : ["2000", "1850", "1700", "1600", "1450"],
};

var index = 0;
if (x > 600)
  index = 4;
else if (x > 500)
  index = 3;
else if (x > 100)
  index = 2;
else if (x > 10)
  index = 1;

// select - ссылка на <select>
var x = data[ select.value ] [ index ];

alert(x);

Verzicht 13.05.2013 14:48

Спасибо, работает!

ksa 13.05.2013 16:02

Цитата:

Сообщение от Verzicht
для значения input меньше 10 берет первое значение из массива
от 10 до 100 - второе значение из массива
от 100 до 500 - третье значение из массива
от 500 до 600 - четвертое значение из массива
от 600 до 1000 - пятое значение из масива.

Если нет разницы - дни так же показывать селектом и пусть выбирают нужный диапазон.
Т.о. все сведется к простому алализу значений селектов... И не нужно людям голову пудрть в количестве дней. :D

Verzicht 13.05.2013 18:50

Цитата:

Сообщение от ksa (Сообщение 250232)
Если нет разницы - дни так же показывать селектом и пусть выбирают нужный диапазон.
Т.о. все сведется к простому алализу значений селектов... И не нужно людям голову пудрть в количестве дней. :D

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

danik.js 13.05.2013 19:15

Цитата:

Сообщение от Verzicht
на яве считается разность дней

То есть чтобы посчитать разность дней нужно установить java? О_о


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