查看單個文章
舊 2008-12-14, 09:41 PM   #9 (permalink)
cwvdavid
長老會員
 
cwvdavid 的頭像
榮譽勳章
UID - 476
在線等級: 級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時級別:46 | 在線時長:2395小時 | 升級還需:2小時
註冊日期: 2002-12-06
住址: 天與地的夾縫
文章: 3106
精華: 0
現金: 5256 金幣
資產: 2034465 金幣
預設

檔案都放在網路上的話, 可以...
但必須放在一起...

(利用JavaScript的 XMLHttp)



回正題, 你提供的網址, 每一家都不一樣

甚至有幾家是相衝的...

所以我先以第一個連結的內容, 大致改了一下,
你參考看看
語法:
<html>

<head>
<meta http-equiv="Content-Language" content="zh-tw">
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title>價格加總</title>
</head>

<body>



<table border="1" width="600" id="table1">
	<tr>
		<td>項目類別</td>
		<td>項目</td>
		<td>數量</td>
		<td>小計</td>
	</tr>
	<tr>
		<td>禮堂使用費</td>
		<td>
			<select id="D1_ddl" size="1" onchange="setMoney('D1_ddl', 'D1_Amount', 'D1_price')">
				<option value="0">不需要</option>
				<option value="1800">甲級</option>
				<option value="750">乙級</option>
				<option value="600">丙級</option>
				<option value="225">丁級</option>
			</select>
		</td>
		<td><input id="D1_Amount" type="text" onkeyup="setMoney('D1_ddl', 'D1_Amount', 'D1_price')" value="1" size="5"></td>
		<td><span id="D1_price">0</span></td>
	</tr>
	<tr>
		<td>禮堂冷氣費</td>
		<td>
			<select id="D2_ddl" size="1" onchange="setMoney('D2_ddl', 'D2_Amount', 'D2_price')">
				<option value="0">不需要</option>
				<option value="1200">甲級</option>
				<option value="450">乙級</option>
				<option value="300">丙級</option>
				<option value="150">丁級</option>
			</select></td>
		<td><input id="D2_Amount" type="text" onkeyup="setMoney('D2_ddl', 'D2_Amount', 'D2_price')" value="1" size="5"></td>
		<td><span id="D2_price">0</span></td>
	</tr>
	<tr>
		<td>XX使用費</td>
		<td>
			<select id="D3_ddl" size="1" onchange="setMoneySpecial('D3_ddl', 'D3_Amount', 'D3_price')">
				<option value="0;0;0">不需要</option>
				<option value="1000;3;300">甲級1000,超過3小時加收300</option>
				<option value="700;3;300">乙級700,超過3小時加收300</option>
				<option value="400;3;200">丙級400,超過3小時加收200</option>
			</select>
		</td>
		<td>
		<input id="D3_Amount" type="text" onkeyup="setMoneySpecial('D3_ddl', 'D3_Amount', 'D3_price')" value="1" size="5"></td>
		<td><span id="D3_price">0</span></td>
	</tr>
	<tr>
		<td> </td>
		<td> </td>
		<td> </td>
		<td> </td>
	</tr>
	<tr>
		<td> </td>
		<td> </td>
		<td> </td>
		<td> </td>
	</tr>
	<tr>
		<td> </td>
		<td> </td>
		<td> </td>
		<td> </td>
	</tr>
	<tr>
		<td> </td>
		<td> </td>
		<td> </td>
		<td>總計</td>
	</tr>
	<tr>
		<td> </td>
		<td> </td>
		<td> </td>
		<td><span id="total_price">0</span></td>
	</tr>
</table>


<script>
	//所有的單價的標籤id...要用分號區隔
	var priceID = "D1_price;D2_price";

	//計算金額(一般)
	function setMoney(myddl, AmountID, targetID)
	{
		if(!document.getElementById(myddl))
		{
			alert("選單項目:[" + myddl+ "]不存在");
			return false;
		}


		if(!document.getElementById(AmountID))
		{
			alert("數量欄位:[" + AmountID + "]不存在");
			return false;
		}


		if(!document.getElementById(targetID))
		{
			alert("小計欄位:[" + targetID + "]不存在");
			return false;
		}


		//設定單價
		document.getElementById(targetID).innerHTML = document.getElementById(myddl).value * document.getElementById(AmountID).value;
		
		//計算總價
		countTotal();
	}


	//計算金額(特殊)
	function setMoneySpecial(myddl, AmountID, targetID)
	{
		if(!document.getElementById(myddl))
		{
			alert("選單項目:[" + myddl+ "]不存在");
			return false;
		}


		if(!document.getElementById(AmountID))
		{
			alert("數量欄位:[" + AmountID + "]不存在");
			return false;
		}


		if(!document.getElementById(targetID))
		{
			alert("小計欄位:[" + targetID + "]不存在");
			return false;
		}


		myValue = document.getElementById(myddl).value.split(";"); //用分號區隔金額,上限時數,超時加收價
		if(myValue.length != 3)
		{
			alert('項目內的值設定錯誤, 請更正為 金額;超時時數,超時加收價');
		}

		if(document.getElementById(AmountID).value > myValue[1])
			myOverHour = document.getElementById(AmountID).value - myValue[1];
		else
			myOverHour = 0;

		//設定單價
		document.getElementById(targetID).innerHTML = (myValue[0] * document.getElementById(AmountID).value) + (myOverHour * myValue[2]);
		
		//計算總價
		countTotal();
	}



	function countTotal()
	{
		
		//將所有的單價標籤, 轉成陣列, 以便加總金額
		var myPriceArray = priceID.split(";");
		
		var myCount = 0;
		
		for (var i=0;i< myPriceArray.length;i++)
		{
			if(document.getElementById(myPriceArray[i]))
			{
				myCount = myCount + (document.getElementById(myPriceArray[i]).innerHTML * 1);
			}
			else
			{
				alert("找不到價格標籤的ID : " + myPriceArray[i]);
				return false;
			}
		}
		
		document.getElementById("total_price").innerHTML = myCount;
	}

</script>

</body>

</html>
__________________
姜太公釣魚~ 願者上鉤
cwvdavid 目前離線  
送花文章: 4036, 收花文章: 2466 篇, 收花: 10141 次
回覆時引用此帖
有 3 位會員向 cwvdavid 送花:
getter (2008-12-16),magicwoo (2008-12-15),rank (2008-12-15)
感謝您發表一篇好文章