CodeIgniter调用section()报CI_Loader::section()未定义错误如何解决
问题原因
你用到的$this->section()和$this->endsection()是CodeIgniter 4版本专属的布局插槽功能,你当前使用的是CodeIgniter 3版本,框架核心的CI_Loader类没有内置这两个方法,所以会触发方法未定义的致命错误。
解决步骤(快速实现点击弹窗需求)
- 先删除视图文件中以下两行代码,消除报错:
<?= $this->section('scripts')?> <?= $this->endsection()?>
- 处理脚本依赖问题:你当前的脚本使用了jQuery语法,但视图中没有引入jQuery库,即使消除报错点击按钮也不会触发弹窗,两种方案选其一即可:
- 方案一:引入jQuery库
将jQuery库文件下载到本地静态资源目录后引入,在</body>标签之前添加代码即可,示例:
<script src="/你的本地静态资源路径/jquery.min.js"></script> <script> $(document).ready(function(){ $(document).on('click', '.alertbox', function(){ alert("Hello world"); }); }); </script> </body>
- 方案二:改用原生JS实现,无需依赖任何外部库
直接把你的script标签内容替换为以下代码:
document.addEventListener('DOMContentLoaded', function() { document.querySelector('.alertbox').addEventListener('click', function() { alert("Hello world"); }); });
修改完成后刷新页面,点击按钮即可正常弹出提示框,控制器中原有的视图加载代码无需调整。
内容的提问来源于stack exchange,提问作者JJM50
相关产品推荐
相关产品推荐

