【问题标题】:Configure Cart Price Update配置购物车价格更新
【发布时间】:2012-08-11 10:17:57
【问题描述】:

我想创建一个包含大量选项的产品订购页面。每个选项都会稍微改变价格,我希望在任何选项发生变化时自动更新总价。

所有选项都是下拉菜单,因此当他们从下拉菜单中选择一个选项时,价格需要更改。

我对一切都持开放态度,但最好在一页上写简单的代码。我希望能够在产品页面的其余部分中编辑价格,因为只有一种产品。

任何建议将不胜感激。

【问题讨论】:

    标签: php javascript jquery shopping-cart


    【解决方案1】:

    尝试绑定一个 jQuery/javascript 函数,该函数计算所有价格输入字段的总和,并将其打印到下拉列表的底部onchange 事件,如下所示。我给你的 HTML 只是一个模型,你可以随意改变它和 jQuery 对它的引用。

    HTML:

    <p>Computer base price: $<span id="baseCost"></span></p>
    
    <p>Select your upgrades:</p>
    <form id="options">
        <select name="processor" onchange="calculateTotals()">
            <option value="Base_0">Base processor ($0)</option>
            <option value="Processor1_100">Processor 1 ($100)</option>
            <option value="Processor2_500">Processor 2 ($500)</option>
        </select>
        <select name="hard-drive" onchange="calculateTotals()">
            <option value="Base_0">Base hard-drive ($0)</option>
            <option value="7200rpm_250">7200rpm hard-drive ($250)</option>
        </select>
    </form>
    
    <p>Upgrade total: $<span id="upgradeCost">0</span></p><br>
    <p>Final total: $<span id="sumTotal"></span></p>​
    

    Javascript:

    $(document).ready(function(){
        var basePrice = 2000;
        $("#baseCost").text(basePrice);
        $("#sumTotal").text(basePrice);
    });
    
    function calculateTotals(){
        var basePrice = parseInt($("#baseCost").text(), 10);
        var upgradePrice = 0;
        $("#options select").each(function(){
            var optionVal = $(this).val();
            upgradePrice += parseInt(optionVal.substr(optionVal.indexOf("_") + 1, optionVal.length - 1), 10);
        });
        $("#upgradeCost").text(upgradePrice);
        $("#sumTotal").text(basePrice + upgradePrice);
    }​
    

    WORKING DEMO

    如您所见,选项value 属性包括选项ID 及其价格,用下划线分隔。这允许 Javascript 和您的表单处理代码同时获取所选选项及其价格。

    【讨论】:

    • 我应该在哪里指定它应该添加到总数中的金额?
    • &lt;select&gt;下拉列表中将每个产品的价格作为其各自&lt;option&gt;标签的value属性。
    • 好的,我会将基本价格放在

      标签的 id 为 sumTotal 还是什么?当我将其留空时,它不会添加价格。我试过输入一个值,它也不起作用。有什么建议吗?

    • 对不起@Scott,我想我最初误读了你的问题。我用代码和一个演示更新了我的帖子,希望能实现你想做的事情。
    • 绝对的天才。非常感谢@Snowsickle。
    猜你喜欢
    • 1970-01-01
    • 2017-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多