问题描述
我正在尝试计算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");
}
}
非常感谢您的帮助。
在此处编辑正在传递的数据
解决方法
使用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();