我正在爲一家公司網站撰寫一個程序,讓他們可以在手機上做報價,這是他們手工操作一段時間的過程。他們出售的東西之一是屋頂的山脊帽。這個項目的價格由用戶做出的4個決定來定義。如何根據多個用戶選擇有效地定義變量?
- 客戶定價水平,有3種選擇(單選按鈕)
- 條件,2種選擇(平的或雕刻,下拉框)
- 顏色,有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> Qty:
<input id="ridgeTrim" type="text" value="" size="3"> 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線。有沒有更好的方法來定義基於許多不同用戶選擇的變量?
您是否考慮將定價存儲在XML文件中並使用javascript查找?如果不使用服務器端語言,這將需要大量時間來設置。 – 2013-05-06 14:20:55
我一直在嘗試另一種方式使用2d數組,這個數組更清晰但仍然很長,您推薦使用哪種服務器端語言對此情況很有用。 – 2013-05-06 15:35:13
無論您選擇哪種服務器端語言,您都需要將數據存入數據庫。我不確定您目前如何獲得數據,如果它在Excel中,通常可以將其上傳到數據庫表中。 PHP和ASP.NET都是流行的基於Web的項目 – 2013-05-06 15:36:59