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

如何在Laravel Blade的a标签中传递JavaScript变量

解决方法:将JavaScript变量传入Laravel Blade锚点标签的href中

核心逻辑:Blade模板是服务器端渲染,JavaScript是客户端执行,服务器解析Blade语法时JS变量还未生成,因此无法直接在{{ }}中引用JS变量,必须通过客户端JS动态修改DOM元素属性。

方案1:通过ID定位a标签,动态修改href

  1. 给a标签添加唯一ID,方便JS定位:
<a id="rpr-send-link" href="{{ url('rpr/') }}">
  <button>send</button>
</a>
  1. 在Ajax请求的成功回调中,拼接基础URL与JS变量,更新href属性:
// Ajax请求示例
$.ajax({
  url: '/your-controller-api',
  method: 'GET',
  success: function(response) {
    var rpr_data_id = response.id;
    // 原生JS写法
    const linkEl = document.getElementById('rpr-send-link');
    linkEl.href = "{{ url('rpr/') }}" + rpr_data_id;
    
    // 若使用jQuery,可替换为:
    // $('#rpr-send-link').attr('href', "{{ url('rpr/') }}" + rpr_data_id);
  }
});

方案2:预存基础URL到JS变量,再构造完整链接

先通过Blade生成基础URL并存入JS变量,后续直接拼接ID使用:

<a id="rpr-send-link" href="#">
  <button>send</button>
</a>

<script>
// 预存Blade渲染后的基础URL
const baseRprUrl = "{{ url('rpr/') }}";

// Ajax回调中构造完整链接
$.ajax({
  url: '/your-controller-api',
  success: function(response) {
    var rpr_data_id = response.id;
    const fullUrl = baseRprUrl + rpr_data_id;
    document.getElementById('rpr-send-link').href = fullUrl;
  }
});
</script>

注意事项

  • 务必在Ajax请求成功后再执行修改href的逻辑,避免rpr_data_id未赋值导致无效URL。
  • 若rpr_data_id可能为空,建议添加判断逻辑(如if(rpr_data_id)),防止生成格式错误的链接。

内容的提问来源于stack exchange,提问作者Md Mredul Sarker

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 11:16:55