【问题标题】:Calculating price with jquery用jquery计算价格
【发布时间】:2012-02-08 10:07:29
【问题描述】:

所以我有这样的东西-

3 个季节,每个季节都有不同的价格,例如 第1季 - 4 月 1 日 - 5 月 30 日,价格为 20 美元 10 月 1 日 - 12 月 15 日,价格为 10 美元 6 月 1 日 - 8 月 1 日,价格为 50 美元

所有价格都是按一天计算的,例如,如果我在 6 月 1 日至 8 月 1 日之间租了 5 天的东西,价格将为 250 美元。

我需要在输入字段窗口中将其显示为值,但是我不确定如何使用 Jquery 创建它。

我正在用 php 取出价格,并将其分配给价值 $price。 (大家可以选择,要预订什么,每个项目的价格不同),当他们选择汽车时,一开始没有显示,但之后他们可以选择日期,当他们这样做时,价格显示.希望你明白我的意思。

【问题讨论】:

  • 你有什么不工作的?
  • 嗯,基本上我目前只有 html,现在我正在研究 php 以获取价格并将它们分配给变量。
  • @user1184909 将php值赋给一个javascript变量如下: var $myJqueryVar = ""; .如果值应该是数字,您可以留下引号。
  • 好的,我知道,但是我不确定如何计算,当他们选择一个项目和一个日期时,它会通过,自动找到它是哪个季节,然后计算天数并乘以该季节的汽车价格。
  • 你想用 php 和 jQuery 做什么?界面在哪里?!

标签: php jquery


【解决方案1】:

虽然所有情况都没有在这个例子中处理,但你会得到一个计算价格的想法

$('select').live("change",function(){
                month_price = $('#start_date_month').val();

                price = ($('#start_date_month option[value="'+month_price+'"]').attr('price'));

                startday = $('#start_date_day').val();

                endday = $('#end_date_day').val();
                end_month = $('#end_date_month').val();
                if(endday > 15 && end_month==12)
                {
                    price = $('#start_date_month option[value="1"]').attr('price');
                }

                days = endday - startday;
                $('#price').val(days*price);

            });

html代码会是这样的

<select name="start_date_day" id="start_date_day" >
                <?php
                for ($d = 1; $d < 32; $d++) {
                    echo '<option value="' . $d . '">' . $d . '</option>';
                }
                ?>
            </select>
            <select name="start_date_month" id="start_date_month">
                <?php
                for ($m = 1; $m < 13; $m++) {
                    if ($m == 4 || $m == 5)
                        echo '<option value="' . $m . '" price=20>' . $m . '</option>';
                    elseif ($m == 6 || $m == 7)
                        echo '<option value="' . $m . '" price=50>' . $m . '</option>';
                    elseif ($m == 10 || $m == 11 || $m == 12)
                        echo '<option value="' . $m . '" price=10>' . $m . '</option>';
                    else
                        echo '<option value="' . $m . '" price=5>' . $m . '</option>';
                }
                ?>
            </select>
            <select name="start_date_year" id="start_date_year">
                <?php
                for ($i = 2012; $i < 2020; $i++) {
                    echo '<option value="' . $i . '">' . $i . '</otpion> ';
                }
                ?>
            </select>
            <select name="end_date_day" id="end_date_day">
                <?php
                for ($d = 1; $d < 32; $d++) {
                    echo '<option value="' . $d . '">' . $d . '</option>';
                }
                ?>
            </select>
            <select name="end_date_month" id="end_date_month">
                <?php
                for ($m = 1; $m < 13; $m++) {
                    echo '<option value="' . $m . '">' . $m . '</option>';
                }
                ?>
            </select>
            <select name="end_date_year" id="end_date_year">
                <?php
                for ($i = 2012; $i < 2020; $i++) {
                    echo '<option value="' . $i . '">' . $i . '</otpion> ';
                }
                ?>
            </select>
            <input type="text" name="price" id="price"/>

【讨论】:

  • 今天晚些时候会测试它。我看到你在 Jquery 中有关于天数的 if 语句,我记得,我需要检查,因为人们不仅可以在一个季节拿货,而且可以在两个季节拿货,然后这意味着价格可能会改变。例如,他们可以从 8 月 20 日到 9 月 10 日取货,这意味着 11 天将是旺季价格,10 天将是淡季价格,如果不包括在内,你能否给我一个类似的例子?
【解决方案2】:

这里我展示了一个处理的案例,15 月之前的 12 月是开始日期,结束日期是 15 之后,所以价格是多少

 $(document).ready(function() {
            $('select').live("change",function(){
                month_price = $('#start_date_month').val();

                price = ($('#start_date_month option[value="'+month_price+'"]').attr('price'));

                startday = $('#start_date_day').val();

                endday = $('#end_date_day').val();
                end_month = $('#end_date_month').val();
                if(startday <15 && endday > 15 && month_price == 12 && end_month==12){
                    enddateprice = $('#start_date_month option[value="1"]').attr('price');
                    actualprice = ((16-startday)*price) + ((endday-16)*enddateprice);
                }
                else if(endday > 15 && end_month==12)
                {
                     days = endday - startday;
                    price = $('#start_date_month option[value="1"]').attr('price');
                    actualprice = days*price;
                }else{
                     days = endday - startday;
                     actualprice = days*price;
                }


                $('#price').val(actualprice);

            });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多