1

几天来我一直在尝试这样做,但我似乎无法让它发挥作用。我想根据用户选择的鞋码更改价格。但我需要知道 checkout.php 上选择的尺寸。我的 checkout.php 已经在工作,但我需要获得尺寸以及该尺寸的奖品。在选择的选项中,我指出了价格和价格的大小。请帮忙。

<div class="content_half float_r">
    <form id="add2cart" name="cart" method="Post" action="<?php fetchdir($bpages); ?>cart.php">
             <table>
                    <tr>
                        <td width="160">Price:</td>
                        <td name="price" id="price"><?php echo $row ['Start_Cost']; ?></td>

                    </tr>

                <tr>
                 <td for="size" width="160">size*:</td>
                <td>
                <select name="size" class="small" id ="size">
                                <option value="">12 size</option> // the price tag already have the start_Cost for this size
                        <option value="">14 size(£30.00)</option>
                    <option value="">16 size(£35.00)</option>
                        <option value="">18 size(£40.00)</option>
                    <option value="">20 size(£45.00)</option>
                        <option value="">22 size(£55.00)</option>
                            <option value="">24 size(£60.00)</option>
                    <option value="">26 size(70.00)</option>
                            <option value="">28 size(£80.00)</option>
                   </select>
                </td>

                </tr>   
        <tr>
             // you choose size
            <td> size: // the size the person choose will go down here
             </td>

    </tr>   

            <tr>
                        <td>Quantity</td>
                        <td><input type="text" name="Qty" value="1" style="width: 20px; text-align: right" /></td>

                    </tr>       
                </table>    
                <div class="cleaner h20"></div>

                <input type="hidden" name="pid" id="id" value="<?php echo $id; ?>" />
                <input type="Submit" class="button" name="button" id="button" value="Add to shopping cart"/>
                </form>             
            </div>
4

2 回答 2

1

首先,您可能只是想通过将鞋码提供给选项的 value 属性来发送鞋码。选项内的文本只是一个标签。

<option value="12">12 size</option>

其次也是最重要的:你永远不会希望客户告诉你价格是多少!!!绝不!如果黑客出现,他可以轻松提交大小设置为 12 且价格设置为 0 的表单。您不想免费发送这些表单吗?哈克,如果他发送一个负值,甚至可能不得不退还他。因此,请修改您的 PHP 脚本以从内部数组或其他东西中计算/查找价格。或者确保您至少彻底验证输入。


要更新价格,您可以使用jQuery.ajax调用 php 脚本,该脚本只需获取鞋码并返回价格。看看这个jsFiddle是什么意思。您将不得不用您的新 php 脚本替换 ajax URL。阅读 ajax 文档,了解如何正确传递输入和输出数据。在写入数据之前,您还可以将价格乘以数量。

于 2013-05-31T11:12:53.630 回答
0

这是一个适合您的工作示例LIVE DEMO

请注意我如何添加<span>s 以便能够在我想要的位置插入文本。我还添加了一些ids 来帮助选择正确的DOM元素。

这里是JavaScript基于jQuery.

// initially provide data
var shoeData = {
    12: 25,
    14: 30,
    16: 35
}

$(function () {    
    $(document).ready(function () {
        // dynamically create the options in the select
        $.each(shoeData, function (key, value) {
            $("#size").append($("<option>", {
                "value": key,
                    "text": key + " size(£" + value + ")"
            }));
        });
        // display the initial data
        updateHandler();
    });    

    // register for update events on the input fields
    $("#size").on('change', updateHandler);
    $("#qty").on('input', updateHandler);
});

// handle update events (when an input field was changed)
function updateHandler() {
    // accumulate the data
    var value = $("#size").val();
    var quantity = $("#qty").val();
    var price = shoeData[value];
    var endPrice = price * quantity;

    // display the data
    $('#priceDisplay').html(price);
    $("#sizeDisplay").html(value);
    $("#totalDisplay").html(endPrice);
}

您所要做的就是使用php如下数据填充 shoeData 对象:

var shoeData = {
    12: <?php echo $row [ 'Start_Cost']; ?>,
    14: <?php echo "30"; ?>,
    16: <?php echo $priceForSize16; ?>,
}

当客户更改鞋码或数量时,只需将字符串写入html相应spans 的“”属性即可更新总价、价格和鞋信息。

cart.php将按预期收到表格 - 这意味着您将获得“ Qty”和“ size”。PHP您将必须根据 from 的值查找价格,$REQUEST["size"]然后将其乘以 of 的值$REQUEST["Qty"]以得到总和。

于 2013-05-31T23:16:05.287 回答