将 Javascript 中的复选框总和合并到我的 PHP 数据库表中


Combine checkbox sum from Javascript into my PHP database table

这是我当前数据库填充表的代码。我找到了以前的Javascript代码来帮助我对多个复选框的值求和。

我想要求和的值仅来自我的Asset_Cost

<body>
    <table cellpadding="0" cellspacing="0" border="0" id="table" class="sortable">
        <thead>
            <tr>

                <th><h3>Asset ID</h3></th>
                <th><h3>Vendor</h3></th>
                <th><h3>Hardware </h3></th>
                <th><h3>Cost</h3></th>
                <th><h3>Purchase Date</h3></th>
                <th><h3>Select Cost</h3></th>

            </tr>
        </thead>
        <tbody>
        <?php

    $result = mysql_query("SELECT * FROM Asset");
        while($row = mysql_fetch_array($result)) 
    { 

    echo "<tr>";
    echo "<td>" . $row['Asset_ID']."</td>"; 
    echo "<td>" . $row['Vendor_Name'] . "</td>"; 
    echo "<td>" . $row['Hardware_ID'] . "</td>"; 
    echo "<td>" . $row['Asset_Cost'] . "</td>"; 
    echo "<td>" . $row['DateOfPurchase'] . "</td>";
    echo "</tr>";
 } 
echo "</table>";

我想集成此代码中的复选框总和:

<?php
include('connect1.php');
$result = $db->prepare("SELECT * FROM Asset");
        $result->bindParam(':userid', $res);
        $result->execute();
        for($i=0; $row = $result->fetch(); $i++){
    ?>
        <INPUT TYPE="checkbox" NAME="items[]" value="<?php echo $row['Asset_Cost'] ?>" id="sum_m_<?php echo $i ?>" onclick="UpdateCost()">

        <td>
        <?php echo $row['Asset_ID'] ?>
        <?php echo $row['Vendor_Name'] ?>
        <?php echo $row['Hardware_ID'] ?>
        <?php echo $row['Asset_Cost'] ?>

        </td>
        <br>

    <?php
    }
?>
<br>
Total Cost : <input type="text" name="sen" id="totalcost" value="">

这是 JavaScript

<script type="text/javascript">
function UpdateCost() {
  var sum = 0;
  var gn, elem;
  for (i=0; i<<?php echo $calculated ?>; i++) {
    gn = 'sum_m_'+i;
    elem = document.getElementById(gn);
    if (elem.checked == true) { sum += Number(elem.value); }
  }
  document.getElementById('totalcost' ).value = sum.toFixed(0);
}
window.onload=UpdateCost
</script>
    <body>
        <table cellpadding="0" cellspacing="0" border="0" id="table" class="sortable">
            <thead>
                <tr>
                    <th><h3>Select</h3></th>
                    <th><h3>Asset ID</h3></th>
                    <th><h3>Vendor</h3></th>
                    <th><h3>Hardware </h3></th>
                    <th><h3>Cost</h3></th>
                    <th><h3>Purchase Date</h3></th>
                </tr>
            </thead>
            <tbody>
            <?php

        $result = mysql_query("SELECT * FROM Asset");
        $calculated = mysql_num_rows($result);
        while($row = mysql_fetch_array($result)) 
        { 

        echo "<tr>";
        echo "<td><INPUT TYPE='checkbox' NAME='items[]' value='". $row['Asset_Cost'] ."' id='sum_m_$i' onclick='UpdateCost()'> </td>";
        echo "<td>" . $row['Asset_ID']."</td>"; 
        echo "<td>" . $row['Vendor_Name'] . "</td>"; 
        echo "<td>" . $row['Hardware_ID'] . "</td>"; 
        echo "<td>" . $row['Asset_Cost'] . "</td>"; 
        echo "<td>" . $row['DateOfPurchase'] . "</td>";
        echo "</tr>'n";

        }
    ?>
    <br>
    Total Cost : <input type="text" name="sen" id="totalcost" value="">

    <script type="text/javascript">
    function UpdateCost() {
      var sum = 0;
      var gn, elem;
      for (i=0; i<<?php echo $calculated ?>; i++) {
        gn = 'sum_m_'+i;
        elem = document.getElementById(gn);
        if (elem.checked == true) { sum += Number(elem.value); }
      }
      document.getElementById('totalcost' ).value = sum.toFixed(0);
    }
    window.onload=UpdateCost();
    </script>

</body>

大多数情况下,事情就像在你的代码中一样。仅给出等于 mysql 结果中行数的值$calculated。 希望这有帮助..