减法成为加法?

时间:2013-01-09 23:14:23

标签: php jquery subtraction

我在一个非常简单的计算中遇到了一个奇怪的问题。单击addDomain复选框时,页面会向php后端发出ajax请求,其中新的小计根据传递的参数确定。首次选中复选框时,一切都按预期工作(即返回新的总和)。如果随后取消选中该复选框,则会再次触发该请求,但会从某处添加一个总和而不是减法的乘积。

这是我正在使用的代码。对于我正在尝试做的事情应该非常简单。

case 'domainprices':
    $sub = request_var('s', 0.00);
    $checked = request_var('c', true);
    $price = (float) 10.99;

    if($checked){
        $sub = $sub + $price;
    }else{
        $sub = $sub - $price;
    }
    $res['res'] = $sub;
    echo json_encode($res);
break;

case 'hosting':
$id = request_var('id', '');
switch($id){
    case 'economy':
        $res['body'] = '<div>
            <select name="duration">
                <option value="3">3 years @ $2.99/Mo</option>
                <option value="2">2 years @ $3.99/Mo</option>
                <option value="1">1 year @ $4.99/Mo</option>
                <option value="0">1 month @ $5.99/Mo</option>
            </select><br />
            Add Domain Name: <input type="checkbox" name="addDomain" /><br />
            Subtotal: $<span id="subtotal">107.64</span>
        </div>
        <script>
        $("select[name=duration]").change(function(){
            var duration = $(this).val();
            var checked;
            if($("input[name=addDomain]").is(":checked")){
                checked = true;
            }else{
                checked = false;
            }
            Funcs.ajaxCall("services", "mode=hostingprices&d="+duration, function(data){
                $("#subtotal").html(data.result);
            });
        });
        $("input[name=addDomain]").mousedown(function(){
            var subtotal = $("#subtotal").html();
            var checked;
            if($(this).is(":checked")){
                checked = false;
            }else{
                checked = true;
            }
            Funcs.ajaxCall("services", "mode=domainprices&s="+subtotal+"&c="+checked, function(data){
                $("#subtotal").html(data.res);
            });
        });
        </script>';
        $res['name'] = "Economy Hosting";
        echo json_encode($res);
    break;
}
break;

0 个答案:

没有答案