2013-05-06 73 views
1

我正在爲一家公司網站撰寫一個程序,讓他們可以在手機上做報價,這是他們手工操作一段時間的過程。他們出售的東西之一是屋頂的山脊帽。這個項目的價格由用戶做出的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線。有沒有更好的方法來定義基於許多不同用戶選擇的變量?

+0

您是否考慮將定價存儲在XML文件中並使用javascript查找?如果不使用服務器端語言,這將需要大量時間來設置。 – 2013-05-06 14:20:55

+0

我一直在嘗試另一種方式使用2d數組,這個數組更清晰但仍然很長,您推薦使用哪種服務器端語言對此情況很有用。 – 2013-05-06 15:35:13

+0

無論您選擇哪種服務器端語言,您都需要將數據存入數據庫。我不確定您目前如何獲得數據,如果它在Excel中,通常可以將其上傳到數據庫表中。 PHP和ASP.NET都是流行的基於Web的項目 – 2013-05-06 15:36:59

回答

0

爲什麼不把選擇和價格放在屬性文件中。由於屬性文件在鍵值對上工作,您只需從用戶選擇中獲取相應的鍵並從屬性中獲取相應的鍵。這也可以讓你不用硬編碼價格和顏色。您可以在html中創建下拉列表,然後使用javascript填充它。您可以在java文件中擁有屬性文件讀取邏輯,這可以在您的javascript中引用。

你的屬性文件可能是這樣的:

galvalume=14.70 
galvanized=13.35 

希望它能幫助!

+0

如何製作屬性文件? – 2013-05-06 14:03:28

+0

編輯迴應顯示樣本屬性文件 – 2013-05-06 14:07:43

+0

我想你假設我編寫Java,我只使用JavaScript。 – 2013-05-06 14:08:35

相關問題