Как я могу эффективно определить переменную на основе нескольких вариантов выбора пользователя?

Я пишу программу для веб-сайта компании, которая позволит им делать кавычки по телефону, процесс, который они выполняли вручную в течение некоторого времени. Одна из вещей, которые они продают - это козырек для крыши. Цена этого предмета определяется 4 решениями, принятыми пользователем.

  1. Уровень цен клиента, есть 3 варианта (радио кнопки)
  2. Состояние, 2 варианта (плоский или скульптурный, выпадающий список)
  3. Цвет, есть 4 варианта (выпадающий список)
  4. Ширина, есть 14 вариантов (выпадающий список)

До сих пор я определял эту переменную с помощью огромного оператора If... else if, который составляет более 1000 строк кода. Проблема в том, что большинство продуктов одинаковы, и в таком случае мне потребовались бы месяцы, чтобы закончить. Я опубликую свой HTML ниже, а затем скрипт. Заранее спасибо всем, кто может помочь. (примечание: я разместил только тот код, который, по моему мнению, был необходим для решения моей проблемы, предположим, что я знаю окружающие теги, такие как таблица и т. д.)

HTML для выбора цвета...(каждый цвет меняет цену)

<td><form name="form2" method="post" action="">
<label for="color"></label>
<select name="color" id="color">
 <option value="galvanized">galvanized</option>
 <option value="galvalume">galvalume</option>
 <option value="metallic copper">metallic copper</option>
 <option value="red">red</option>// there are many painted colors which is why i use "else" for this price change.
</select>
</form>

HTML для отделки...(выбор условия и ширины)

<td>Ridge:</td>
<td><select id="ridgeChoice" name="ridgeChoice">
<option value="Sculpted">Sculpted</option>
<option value="Flat">Flat</option>
</select>&nbsp;Qty:
<input id="ridgeTrim" type="text" value="" size="3">&nbsp; Width:<select id="ridgeWidth" name="ridgeWidth">
<option value="13">13"</option>
<option value="16">16"</option>
<option value="18">18"</option>
<option value="20">20"</option>
<option value="22">22"</option>
<option value="24">24"</option>
<option value="26">26"</option>
<option value="28">28"</option>
<option value="30">30"</option>
<option value="32">32"</option>
<option value="34">34"</option>
<option value="36">36"</option>
<option value="38">38"</option>
<option value="40">40"</option>
</select>
</td>

HTML для уровня цен - это просто радиогруппа с тремя вариантами, которая также влияет на цену.

Javascript...

var ridgeChoice=document.getElementById("ridgeChoice").value;
var ridgeWidth=document.getElementById("ridgeWidth").value;

var ridgePrice;
if (ridgeChoice=="Sculpted")
{
if (retailPrice.checked)
{
    if (ridgeWidth=="13")
        {
            if(colorChoice=="galvalume")
            {
                ridgePrice=14.70;
            }
            else if (colorChoice=="metallic copper")
            {
                ridgePrice=19.55;
            }
            else if (colorChoice=="galvanized")
            {
                ridgePrice=13.35;
            }
            else
            {
                ridgePrice=16.65;
            }
        }
                   else if (ridgeWidth=="16")
        {
            if(colorChoice=="galvalume")
            {
                ridgePrice=21.30;
            }
            else if (colorChoice=="metallic copper")
            {
                ridgePrice=29.50;
            }
            else if (colorChoice=="galvanized")
            {
                ridgePrice=20.5;
            }
            else
            {
                ridgePrice=22.90;
            }
        }

Это продолжается для 1000 строк. Есть ли лучший способ определить переменную, основанную на множестве различных пользовательских вариантов?

1 ответ

Решение

Почему бы вам не указать выбор и цены в файле недвижимости. Так как файл свойств работает с парой ключ-значение, вам просто нужно получить соответствующий ключ из пользовательского выбора и получить цену за него из Properties. Это также позволит вам не жестко кодировать цену и цвет. Вы можете создать раскрывающийся список в HTML, а затем заполнить его с помощью JavaScript. Вы можете иметь логику чтения файла свойств в java-файле, на который можно ссылаться в вашем javascript.

Ваш файл свойств может выглядеть так:

galvalume=14.70
galvanized=13.35

Надеюсь, поможет!

Другие вопросы по тегам