Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.05.2013, 12:44
Новичок на форуме
Отправить личное сообщение для Verzicht Посмотреть профиль Найти все сообщения от Verzicht
 
Регистрация: 13.05.2013
Сообщений: 3

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.

Логику понимаю, но со знанием языка проблемы. Кто-нибудь может подсказать?
Ответить с цитированием
  #2 (permalink)  
Старый 13.05.2013, 12:54
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Ключевые слова для гугления:
javascript switch
Ответить с цитированием
  #3 (permalink)  
Старый 13.05.2013, 13:18
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

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);
Ответить с цитированием
  #4 (permalink)  
Старый 13.05.2013, 14:48
Новичок на форуме
Отправить личное сообщение для Verzicht Посмотреть профиль Найти все сообщения от Verzicht
 
Регистрация: 13.05.2013
Сообщений: 3

Спасибо, работает!
Ответить с цитированием
  #5 (permalink)  
Старый 13.05.2013, 16:02
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,120

Сообщение от Verzicht
для значения input меньше 10 берет первое значение из массива
от 10 до 100 - второе значение из массива
от 100 до 500 - третье значение из массива
от 500 до 600 - четвертое значение из массива
от 600 до 1000 - пятое значение из масива.
Если нет разницы - дни так же показывать селектом и пусть выбирают нужный диапазон.
Т.о. все сведется к простому алализу значений селектов... И не нужно людям голову пудрть в количестве дней.
Ответить с цитированием
  #6 (permalink)  
Старый 13.05.2013, 18:50
Новичок на форуме
Отправить личное сообщение для Verzicht Посмотреть профиль Найти все сообщения от Verzicht
 
Регистрация: 13.05.2013
Сообщений: 3

Сообщение от ksa Посмотреть сообщение
Если нет разницы - дни так же показывать селектом и пусть выбирают нужный диапазон.
Т.о. все сведется к простому алализу значений селектов... И не нужно людям голову пудрть в количестве дней.
Да не, там все немного сложнее. Пользователь выбирает первый день и последний день в календаре, на яве считается разность дней, и уже полученная переменная используется. Просто не стал здесь все усложнять
Ответить с цитированием
  #7 (permalink)  
Старый 13.05.2013, 19:15
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

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



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Массивы. Как узнать ключ, зная значение? jsuse Общие вопросы Javascript 4 24.11.2011 19:03
Как сделать как в JQ? faforty Общие вопросы Javascript 8 14.11.2011 01:35
JS классы - как объединить функции в класс olga153b Events/DOM/Window 3 01.11.2011 14:13
Как сделать электронный каталог продукции? natarius Серверные языки и технологии 6 24.05.2009 20:56