【问题标题】:Jquery or JavaScripts to add calculation column in html table [duplicate]Jquery或JavaScript在html表中添加计算列[重复]
【发布时间】:2019-02-06 09:35:13
【问题描述】:

我正在使用 PHP 和 Mysql 查询生成一个 HTML 表格(表格看起来像这样https://ibb.co/2k8XbbZ

DB ID   EmpID   Date        Username    Computername    State   Minutesatstate  Statestarttime  Stateendtime        Timestamp
704634  303836  02-06-2019  user        PC-818          Idle    2               13:44           13:46               2019-02-06 13:46:46
704599  303836  02-06-2019  user        PC-818          Active  16              13:28           13:44               2019-02-06 13:44:46
704340  303836  02-06-2019  user        NIPL-1220       Active  2               13:27           13:28               2019-02-06 13:28:48
704313  303836  02-06-2019  user        PC-818          Active  13              13:15           13:27               2019-02-06 13:27:31

我想用 Jquery 或 Javascripts 添加另一列来减去第一行的 Statestarttime 列和第二行的 Stateendtime 列来找出时间差

预期结果示例

StateStarTtime    StateEndTime   Min Difference 

03:57             03:58          00:03
03:53             03:54          00:04
03:46             03:49          null

我能够找到很多示例并帮助从第一行的 StateEndTime 中减去 StateStartTtime,但我想从 StateEndTime 的第二行单元格值中减去 StateStartTime 的第一行单元格值以找到分钟差。

我是 HTML 和 PHP 的初学者,但对 JS/JQ 完全陌生,因此非常感谢我如何做到这一点的任何方向。下面是我正在使用的 PHP 和 HTML 代码 sn-p。如果您想要完整的代码,请告诉我。

            <?php while($row = mysqli_fetch_array($search_result)):?>

            <tr>
                <td align="Center"><?php echo $row['id'];?></td>
                <td align="Center"><?php echo $row['EmpID'];?></td>
                <td align="Center"><?php echo $row['Date'];?></td>
                <td align="Center"><?php echo $row['Username'];?></td>
                <td align="Center"><?php echo $row['Computername'];?></td>
                <td align="Center"><?php echo $row['State'];?></td>
                <td align="Center"><?php echo $row['MinutesatState'];?></td>
                <td align="Center"><?php echo $row['StateStarttime'];?></td>
                <td align="Center"><?php echo $row['StateEndtime'];?></td>
                <td align="Center"><?php echo $row['Timestamp'];?></td>


            </tr>
            <?php endwhile;?>

【问题讨论】:

  • 如果您正在生成表格形式的 PHP 数据,那么在此处而不是在客户端 JS 中进行计算会更有意义。
  • 我愿意接受有关如何做到这一点的建议。我也问过 Q. 但无法正常工作 (stackoverflow.com/questions/54474772/…)

标签: javascript php jquery html


【解决方案1】:

尝试使用另一个循环将 StateStarttime 和 StateEndTime 存储在数组中,然后 计算如下,因为您无法在单个循环中获取下一行的值

<?php while($row = mysqli_fetch_array($search_result)):?>
    <?php $startTime[] =  $row['StateStarttime'];?>
    <?php $endTime[] = $row['StateEndtime'];?>
<?php endwhile;?>
<?php 
    $i = 0;
    while($row = mysqli_fetch_array($search_result)):?>
        <tr>
            <td align="Center"><?php echo $row['id'];?></td>
            <td align="Center"><?php echo $row['EmpID'];?></td>
            <td align="Center"><?php echo $row['Date'];?></td>
            <td align="Center"><?php echo $row['Username'];?></td>
            <td align="Center"><?php echo $row['Computername'];?></td>
            <td align="Center"><?php echo $row['State'];?></td>
            <td align="Center"><?php echo $row['MinutesatState'];?></td>
            <td align="Center"><?php echo $row['StateStarttime'];?></td>
            <td align="Center"><?php echo $row['StateEndtime'];?></td>
            <td align="Center"><?php echo $row['Timestamp'];?></td>
            //your calculation goes here like diff



            <td align="Center">
               <?php 
                   $mycalc = ($startTime[$i] - endTime[$i+1]);   
                    echo $mycalc;
                ?>
            </td>
        </tr>
        $i++;
<?php endwhile;?>

【讨论】:

  • 我收到致命错误:无法在写入上下文中使用临时表达式
  • 我收到致命错误:无法在写入上下文中使用临时表达式(在第二行
  • 对不起!有错字请检查我编辑的答案
  • 现在我可以看到该页面,但尚未创建表格我还修复了 $endTime[$i+1]) 中缺少的 $ 但没有运气
【解决方案2】:

你可以简单地在 PHP 中使用它来完成它

 <td align="Center"><?php echo($row['StateEndtime'] - $row['StateStarTtime ']) ?></td>

【讨论】:

  • 这会给我 StateStarttime 和 StateEndtime 在同一行中的分钟差异我想从 StateEndTime 的第二行单元格值中减去 StateStartTime 的第一行单元格值,依此类推以找到分钟差异。
猜你喜欢
  • 2022-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-05
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 2017-04-16
相关资源
最近更新 更多