You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据数据库nomor字段值动态修改Bootstrap进度条的class属性

实现方案

你可以直接通过PHP服务端判断数值区间,动态输出对应的Bootstrap进度条类即可实现需求,修改后的完整代码如下:

<?php
$hasil = mysqli_query($mysqli, "SELECT * from test");               
$row = mysqli_fetch_array($hasil);
// 新增进度条样式判断逻辑
$nomor = (int)$row['nomor'];
$progressBaseClass = 'progress-bar progress-bar-striped progress-bar-animated';
if ($nomor < 40) {
    $progressBgClass = 'bg-danger';
} elseif ($nomor < 70) {
    $progressBgClass = 'bg-warning';
} else {
    $progressBgClass = 'bg-success';
}
$progressFullClass = $progressBaseClass . ' ' . $progressBgClass;
?>
<tr>
<td><a href="pages/examples/invoice.html"><?php echo $row['nama']; ?></a></td>
<td><?php echo $row['nomor']; ?></td>
<td><span class="badge rounded-pill bg-danger">Realisasi</span></td>
<td>
  <div class="progress progress-sm">
    <div 
      class="<?php echo $progressFullClass; ?>" 
      role="progressbar" 
      aria-valuenow="<?php echo $nomor; ?>" 
      aria-valuemin="0" 
      aria-valuemax="100" 
      style="width: <?php echo $nomor; ?>%"
    >
      <?php echo $nomor; ?>%
    </div>
  </div>
</td>
</tr>

说明

  • 代码中先把$row['nomor']强制转为数值类型,避免字符串比较出错
  • 默认设置了三个区间规则:小于40显示红色(危险)、40-69显示黄色(警告)、70及以上显示绿色(成功),你可以根据自己的需求调整区间阈值和对应的Bootstrap背景类
  • 同时修正了原代码中aria-valuenow硬编码为75的问题,改为动态匹配数值,符合无障碍规范
  • 不需要额外引入JavaScript,服务端渲染的方式执行效率更高,适合从数据库读取固定值渲染的场景

内容的提问来源于stack exchange,提问作者Reehan Piprut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 09:15:02