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

如何在CodeIgniter中根据数据库记录动态加载指定CSS样式表?

问题与解决方法

基于CodeIgniter 3.1.9与PHP 8.2.12开发项目时,需根据不同数据库记录加载对应打印CSS样式表,避免一次性加载所有样式造成冗余。此前尝试以下代码时,所有样式表仍会被加载:

<?php
 if($recipe['linkname'] = 'gallonsizesweettea'){
  echo '<link rel="stylesheet" type="text/css" href="/assets/css/public/page/print/recipes/printgallonsizesweettea.css" media="print" />';
 }
 if($recipe['linkname'] = 'applecobbler'){
  echo '<link rel="stylesheet" type="text/css" href="/assets/css/public/page/print/recipes/printapplecobbler.css" media="print" />';
 }
?>

问题原因

条件判断中使用了赋值运算符=而非比较运算符==,导致每个条件都会被判定为成立,进而输出所有样式表链接。

正确实现方式

  1. 修正运算符并使用elseif优化逻辑:
<?php
if($recipe['linkname'] == 'gallonsizesweettea'){
 echo '<link rel="stylesheet" type="text/css" href="/assets/css/public/page/print/recipes/printgallonsizesweettea.css" media="print" />';
} elseif($recipe['linkname'] == 'applecobbler'){
 echo '<link rel="stylesheet" type="text/css" href="/assets/css/public/page/print/recipes/printapplecobbler.css" media="print" />';
}
?>
  1. 若样式表命名规则统一,可通过动态拼接路径简化代码:
<?php
$printCssPath = "/assets/css/public/page/print/recipes/print{$recipe['linkname']}.css";
echo '<link rel="stylesheet" type="text/css" href="'.$printCssPath.'" media="print" />';
?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 19:27:13