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

Laravel框架JavaScript出现未定义常量i报错的解决方法

问题修复方案

报错根源

你现在的写法混淆了服务端Blade模板渲染逻辑和客户端JavaScript运行逻辑:
Blade的{{ }}语法是服务端PHP执行的,在页面返回到浏览器之前就已经跑完了,此时你的JS里定义的i、j变量根本还不存在,PHP会直接把代码里的i、j当成PHP常量去解析,自然就报「未定义常量i」的错误。

修复方案

你需要先把后端的PHP数组转成前端JS可以直接读取的对象,之后完全用JS逻辑遍历,不要混写Blade语法和JS变量:

  1. 先在JS代码段开头把Laravel变量转成JS可访问的数组:
// 直接用Laravel自带的@json指令把PHP集合转成JS数组
const codes = @json($codes);
const coordinators = @json($coordinators);
  1. 修改你的业务函数,全程用JS变量遍历:
function defaultcoor(course) {
  for(let i=0; i < codes.length; i++) {
    for(let j=0;j < coordinators.length; j++) {
      if(course == codes[i].id && coordinators[j].staffid == codes[i].coordinator_id) {
        document.getElementById("coordinatorname").value = coordinators[j].id;
        // 匹配到后可直接break跳出循环,减少无效遍历
        break;
      }
    }
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 04:36:07