微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

根据Laravel中是否已选中复选框更改定价

如何解决根据Laravel中是否已选中复选框更改定价

我正在尝试计算Laravel的一些运费。基于权重只有两种选择,而我使用if / else语句进行选择。客户希望添加一个选项,如果某人想更快地运送他们的物品并且处于“优先”权重之下,他们可以承担额外的运送费用。我在刀片服务器模板中设置了一个复选框,但不确定100%如何实现它。我会假设我必须执行某种isset语句。

这是刀片服务器模板中的代码

@if( $total_weight <= 16.00)
            <li class="payment__item">
                <label for="priority">Priority Mail</label>
                <span style="padding-top: 2.5%;">
                    <input type="checkBox" name="priority" value="1" {{ $shipping_cost['attributes']['priority'] == '10' ? 'checked="checked"' : '1'}} >
                </span>
            </li>
            <li class="payment__item">Total:
                <span>${{ number_format($payment_total + $shipping_cost,2,'.','')}} </span>
            </li>
            @else
            <li class="payment__item">Total: <span>${{ number_format($payment_total + 10,'')}} </span>
        </li>
        @endif

在我的控制器中,我有这个用于我的公共功能

public function showPayment() {
    $cart = Session::get('cart');
    $payment_info = Session::get('payment_info');


    if($payment_info['status'] == 'on_hold' ) {
         $total_weight = $cart->totalWeight;
         // $shipping_cost = $cart->totalPrice + 5;
         $sales_tax = $cart->totalPrice * .085 ;
         $payment_total = $cart->totalPrice + $sales_tax;

        return view('cart.payments',['payment_info' => $payment_info,'cartItems' => $cart,'sales_tax' => $sales_tax,'shipping_cost' => $shipping_cost,'total_weight'=>$total_weight,'payment_total' => $payment_total]);

    }else{
        return redirect()->route("home");
    }
}

非常感谢您的帮助。

在此处编辑正在传递的数据

Payment Info

Payment Total

Sales Tax

Weight

解决方法

使用javascript检查复选框是否已选中。如果是这样,则将优先运送费用加到总计中

var input = document.querySelector('input[type=checkbox]');

function check() {
    var a = input.checked ? "{{$payment_info['price'] + number_format($sales_tax,2,'.','') + 10 }}" : "{{$payment_info['price'] + number_format($sales_tax,'') + 5 }}   ";
    document.getElementById('total').innerHTML = '$ ' + a;
}
input.onchange = check;
check();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。