この単純な html ページには、ユーザーが配送方法を選択したときに計算を行う JavaScript があります。追加した単純な PHP コードのおかげで、ユーザーの選択が同じままであっても、$_POST 後に計算が同じにならないということです。 、私は PHP と JavaScript の両方でまったく新しいものであり、いくつかの失敗の後、皆さんがこれについて私を助けてくれると思いました。
<html>
<body>
<div class="calculations">
<table>
<tbody><tr>
<td>Subtotal:</td>
<td id="subtotal">$97.00</td>
</tr>
<tr>
<td>Shipping:</td>
<td id="shipping">$6.95</td>
</tr>
<tr class="total">
<td>Total:</td>
<td id="total">$103.95</td>
</tr>
</tbody></table></div>
<select name="shippingmethod" onchange="calc()" class="shipping-method" id="shippingmethod">
<option value="" selected="<?php if (!$_POST || $shippingmethod == '0') {echo 'selected';} ?>">USPS Ground - $6.95</option>
<option value="1" <?php if ($_POST && $shippingmethod == '1') {echo 'selected';}?>>Priority Shipping - $17.95</option>
</select>
<script>
function calc() {
var subtotal =parseFloat(document.getElementById("subtotal").innerHTML.substring(1));
var shipping = parseInt(document.getElementById("shippingmethod").value);
if(shipping == 1) {
var total = subtotal+17.95;
document.getElementById("shipping").innerHTML = "$"+17.95;
} else {
var total = subtotal+6.95;
document.getElementById("shipping").innerHTML = "$"+6.95;
}
document.getElementById("total").innerHTML = "$"+total;
}
document.getElementById("shippingmethod").onchange = function(){
window.scrollTo(0, 0); // scroll to top
calc(); // call function
};
</script>
</body>
<html>