Fionn
Lv 4
Fionn 發問時間: 電腦與網際網路程式設計 · 1 0 年前

關於訂單價格即時加總

我要做個訂單價格即時加總的功能,如下方連結檔案:

http://www.digiidea.com/01.htm

當點選選項1的300元時,下方的總價會出現300元

當再點選選項2的400元時,下方的總價即變成700元

當再點選選項3的價格時,下方的總價便會繼續加總

請問是要用PHP還是JavaScript呢?

要怎麼做呢?

可否請詳細的回答?

謝謝!!

已更新項目:

謝謝 rc08@ymail.com 大大的熱心詳細的回答,您的語法經過測試是OK的,

但是因為我的問題沒有寫的很詳盡,所以產生3個問題想請教一下:

1.當我再增加一個價錢的radio button,如選項1由3個價格增加為4個以上,

增加的部份都沒有功能耶!?

2.因為這個訂單最後要mail出去,所以value的部份需要填產品名,不能只有價格,

請問該該如何修改?

3.我的訂單還有呼叫另一個js進來,好像會和您的js沖到,導致加總功能失效,該如何是好?

2 個已更新項目:

不好意思,再請教最後一個問題,該如何將總價mail出去?

3 個已更新項目:

rc08@ymail.com 大大:

我測試我的檔案是OK的,不知您說的無效是.......?

您的檔案測試結果是內容全部都有收到,

不過中文部份全部都變成亂碼與一堆問號(我是用outlook收信的)

4 個已更新項目:

rc08@ymail.com 大大:

我將您總價的NT" . '$' . "$total 貼到我的send檔案,

測試後收信是OK的 ( firefox和IE ),

但是在IE瀏覽器無法顯示send這個檔案的內容"感謝您的預約,我們........"

這是之前就有的問題,是您所說send的語法問題嗎?

可是它又能將信寄出,收信又沒有問題......

5 個已更新項目:

rc08@ymail.com 大大:

您附的檔案我皆已下載,可麻煩您將它們刪除嗎?

謝謝您!!

6 個已更新項目:

rc08@ymail.com 大大:

我是測試您給我的檔案,結果是亂碼

測試您的網址頁面,都是OK

我檢查過send檔案,有

function Enc($arg)

{ return "=?utf-8?B?".base64_encode($arg)."?=";

}

這段語法,收信卻成亂碼

是何原因呢?

7 個已更新項目:

rc08@ymail.com 大大:

我沒有修改,我是直接測試您的檔案

8 個已更新項目:

rc08@ymail.com 大大:

請您測試

http://www.digiidea.com/mail/mail.php

9 個已更新項目:

rc08@ymail.com 大大:

outlook 選擇UTF8的確解決了亂碼問題

為什麼您的http://w2.hkmalls.com/rc/_tmp/188m/mail.php

所寄的信就不用設定UTF8?

不是相同的檔案嗎?

總不能請客戶每次都要重新選擇吧.......

還有信件內容的

X-Mailer: PHP/4.3.9

Content-Type: text/plain; charset=utf-8

From: =?utf-8?B?NDQ1NA==?= <>

能不能不顯示?

10 個已更新項目:

rc08@ymail.com 大大:

我綜合您的與我的檔案後

所有的問題都解決了

非常謝謝您幫了我這個大忙

ps:可否請您將線上的檔案刪除呢?

謝謝!!

1 個解答

評分
  • 1 0 年前
    最佳解答

    <html>

    <script type='text/javascript'>

    document.onclick = cal

    function cal(e)

    { if (e == null) e = window.event;

    var obj = e.target!=null ? e.target : e.srcElement;

    if ( obj.name==null || !obj.name.match(/radiobutton/) ) return;

    total=0;

    for ( i=0; i<3; i++ )

    { for ( j=0; j<3; j++ )

    { var inp= document.forms["frm1"].elements["radiobutton"+i][j];

    if ( inp.checked ) total+= (1*inp.value);

    }

    }

    document.getElementById("ans").innerHTML = total

    return true

    }

    </script>

    <body>

    <form id="frm1" onchange="cal()">

    <table align="center" border="1" bordercolor="#999999" cellpadding="0" cellspacing="0" width="300">

    <tr>

    <td align="center" height="80" valign="middle">選項1</td>

    <td align="center" valign="middle">

    <input name="radiobutton0" value="300" type="radio" checked>300元<br>

    <input name="radiobutton0" value="400" type="radio">400元<br>

    <input name="radiobutton0" value="500" type="radio">500元<br>

    </td>

    </tr>

    <tr>

    <td align="center" height="80" valign="middle"><p>選項2</p></td>

    <td align="center" valign="middle">

    <input name="radiobutton1" value="300" type="radio" checked>300元<br>

    <input name="radiobutton1" value="400" type="radio">400元<br>

    <input name="radiobutton1" value="500" type="radio">500元

    </td>

    </tr>

    <tr>

    <td align="center" height="80" valign="middle">選項3</td>

    <td align="center" valign="middle">

    <input name="radiobutton2" value="300" type="radio" checked>300元<br>

    <input name="radiobutton2" value="400" type="radio">400元<br>

    <input name="radiobutton2" value="500" type="radio">500元

    </td>

    </tr>

    <tr>

    <td align="center" height="40" valign="middle">總價</td>

    <td align="center" valign="middle"><span id="ans"></span> 元</td>

    </tr>

    </table>

    </form>

    </body>

    </html>

    2010-03-13 10:50:01 補充:

    因字數限制,這幾行沒寫進去,請版大自行補回。

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=big5">

    </head>

    2010-03-13 10:55:54 補充:

    在用戶端即時計算,使用 javascript 。

    送到服務器端作後台處理就用 php 。

    工作原理是在版面設置事件觸發器 onclick 。

    事件觸發器測出是名叫 radioradiobuttonx 的物件被 click ,就做一次加總計算。

    2010-03-13 11:00:43 補充:

    ~~~~~~~~~~

    更正:

    請將 <form id="frm1" onchange="cal()">

    裡的  onchange="cal()" 刪除。

    2010-03-14 07:36:02 補充:

    >迴圈加至10圈的方法我試過後,仍然不成功。

    你的form沒有name,根本就甚麼都做不成。

    這方法對你可能較難,我取消這方法,改用 document.getElementsByTagName,也許對你容易些。

    以後可隨意增減項目。

    我取消document.onclick,改為在每個 radio 加onclick ,避免衝突。

    我將加總語法寫成外掛檔 cal.js ,故此須在mail.php加入這行

    <script type="text/javascript" src="cal.js"></script>

    2010-03-14 22:54:37 補充:

    >"MIME-Version: 1.0\\r\\n" .

    >X-Mailer: PHP/4.3.9

    >Content-Type: text/plain; charset=utf-8

    >From: =?utf-8?B?NDQ1NA==?= <>

    第1句是必要的,尤其是有 attachment 時。

    第2句我不知道是否必須。

    第3句是信件編碼,是必須的。

    =?utf-8?B?NDQ1NA==?= <> 寄信前的中文編碼,到收信時應該會自動轉回中文。

    我不知道為何會這樣子。

    2010-03-14 23:21:10 補充:

    有一要點漏了未講

    <meta .....................utf-8">

    <title>  </title>

    title 須要放在檔案編碼之下,否則,有時候 title 會亂碼。

還有問題?馬上發問,尋求解答。