首页 > 解决方案 > 表单字段数据的实时计算未插入数据库

问题描述

我有一些表单域。某些表单字段数据被禁用。表单字段就像实时计算。它计算得很好。即使它插入到数据库,但禁用的表单字段数据没有插入。我的 HTML 代码在这里

<form method="POST" oninput="x.value=parseInt(a.value)-parseInt(a.value)*parseInt(b.value)/100;y.value=x.value-parseInt(c.value);x.value=parseInt(x.value);">
<?php
$sql= mysqli_query($con,"SELECT SUM(room_book.price) AS total, room.rn,room.rc,room.tbn,room.rp,room_book.room_number,room_book.bed_book,room_book.rand FROM room INNER JOIN room_book ON room.rn = room_book.room_number WHERE room_book.rand = '$rand'");
while ($row = mysqli_fetch_assoc($sql)) {
        ?>
        <div class="row ">
            <div class="form-group col-md-3">
                <label>Total Price</label>
                 <input value = "<?php echo $row['total']; ?>" id="a" name="price" disabled class="form-control" placeholder="(&#2547;)<?php echo number_format($row['total']); ?>">
            </div>

            <div class="form-group col-md-3">
                <label>Discount In Percentage(%)</label>
                 <input value = "0%" name="prcntg" required id="b" class="form-control" placeholder="0%">
            </div>

        </div>


        <div class="row ">
            <div class="form-group col-md-3">
                <label>Total Payable</label>
                 <input name="x" disabled class="form-control" placeholder="">
            </div>

            <div class="form-group col-md-3">
                <label>Total Paid</label>
                 <input name="paid"  id="c" required class="form-control" placeholder="(&#2547;)<?php echo number_format($row['total']); ?>">
            </div>
        </div>
        <div class="row ">
            <div class="form-group col-md-3">
                <label>Total Due</label>
                 <input name="y" for="c" disabled class="form-control" placeholder="(&#2547;)<?php echo number_format($row['total']); ?>">
            </div>
            <div style="margin-top:24px" class="form-group col-md-3">
                <button name="submit" type="submit" data-loading-text="Loading..." class="btn btn-success"><i class="glyphicon glyphicon-ok-sign"></i> Confirm Invoice</button>
            </div>
        </div>

                    <?php } ?>
        </form>

这些代码运行良好。见截图

表单域数据


我的 PHP 代码

<?php
   if(isset($_POST['submit'])){
       $price  = $_POST['price'];
       $prcntg = $_POST['prcntg'];
       $x      = $_POST['x'] ;
       $paid   = $_POST['paid'];
       $y      = $_POST['y'] ;
       $sql = mysqli_query($con,"UPDATE `room_book` SET prcntg = '$prcntg', x = '$x', paid = '$paid', due = '$y', status = 'Active'");
       if($sql == true){
            echo "<script> window.open('final.php?final=$rand','_self'); </script>";
       }
?>

数据库数据


禁用的数据剩余为 0。我该如何解决这个问题。

标签: javascriptphphtmldatabase

解决方案


当您禁用任何 HTML 元素或对任何 HTML 元素使用 disabled 属性时,它不会提交并且您看不到这些值。该名称本身表明该元素已禁用。请改用只读属性。

希望这可以帮助。


推荐阅读