函数在 JavaScript 中无法正确执行

我在 JavaScript 中有这个函数,它应该计算在 php 中选择的产品的总价。当我加载我的页面时,控制台会在我的函数之外记录日志,但里面的却没有。我的代码中是否有错误导致它无法执行?


<?php

if ($result->num_rows > 0) {

    // output data of each row

    while($row = $result->fetch_assoc()) {

      ?>

      <tr>

          <td><?= htmlentities($row['id']); ?></td>

          <td><?= htmlentities($row['Article']); ?></td>

          <td><?= htmlentities($row['Prix']); ?></td>

          <td><?= htmlentities($row['PrixRetour']); ?></td>

          <td><?= htmlentities($row['QuantiteeMaximale']); ?></td>

          <td><?= htmlentities($row['Projet']); ?></td>

          <td><input data-price='<?= floatval($row['Prix']); ?>' data-max-quantity='<?= intval($row['QuantiteeMaximale']); ?>' type="number" name="quantity"></td>

      </tr>

      <?php

    }

    ?>

    </table>

    <p>Grand Total: $<span id='grandTotal'></span></p>

    <script>

        console.log("test1");

        function calTotal() {

            console.log("test2");

            const tableEl = document.getElementById('articles')

            const grandTotalEl = document.getElementById('grandTotal')

            const inputEls = tableEl.querySelectorAll('input[name=quantity]')

            const updateGrandTotal = (grandTotalEl, inputEls) => {

                grandTotalEl.innerText = inputEls.reduce((total, inputEl) => {

                    const maxQuantity = parseInt(inputEl.dataset.maxQuantity)


                    if(parseInt(inputEl.value) > maxQuantity) inputEl.value = maxQuantity

                    if(parseInt(inputEl.value) < 0) inputEl.value = 0


                    const price = parseFloat(inputEl.dataset.price)

                    const quantity = parseInt(inputEl.value)


                    console.log("hello");


                    if(isNaN(quantity)) return total


                    return total + (price * quantity)

                }, 0)

            }



12345678_0001
浏览 216回答 2
2回答

开心每一天1111

// Create javascript-only function for loaded DOMfunction readyFired(callback) {&nbsp; &nbsp; document.readyState != 'complete' ? setTimeout('readyFired(' + callback + ')', 1) : callback();}// DOM is fully-loaded and ready to calculate the totalreadyFired(function() {&nbsp; &nbsp; calTotal();});
打开App,查看更多内容
随时随地看视频慕课网APP