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

URL参数丢失问题求助:页面跳转时GET参数值被清空

问题分析与解决办法

原PHP链接的问题

  1. 语法错误导致参数为空
    原<a>标签的PHP代码里,emp=<?=$_GET['emp']缺少闭合的PHP标签?>,这会导致PHP无法正确解析变量,最终输出的URL里emp参数值为空,甚至可能把错误代码混入URL。修复方式很简单,补全闭合标签:
<a href="/forms/page_name/dashboard.php?page=page1&pg=<?=$_GET['pg']?>&type=fa&emp=<?=$_GET['emp']?>"> Name of Link </a>
  1. 当前页面无目标GET参数
    如果当前页面URL本身就没有pg或emp参数,那$_GET['pg']和$_GET['emp']自然是空值。你可以在当前页面顶部加一行var_dump($_GET);,输出所有当前GET参数,确认这两个参数是否存在。如果确实不存在,得先明确这些参数的来源——是之前页面传递的?还是需要从其他地方获取?

  2. 未做URL编码引发解析异常
    如果pg或emp的值包含特殊字符(比如&、=、空格等),直接拼到URL里会破坏参数结构,导致后续参数丢失或截断。正确做法是用urlencode()对参数值编码:

<a href="/forms/page_name/dashboard.php?page=page1&pg=<?=urlencode($_GET['pg'])?>&type=fa&emp=<?=urlencode($_GET['emp'])?>"> Name of Link </a>

你的JavaScript方案优化

你的JS方案能绕过PHP解析问题,但同样要注意URL编码,避免特殊字符搞乱URL结构。可以用encodeURIComponent()对每个参数值编码:

$('.leave_info').each(function(index, element){
      $(element).dblclick(function(e){
          let pg = $(this).val()
          let page = $(this).data('page')
          let type = $(this).data('type')
          let emp = $(this).data('emp')
          let super_id = $(this).data('id')

          window.location.href = "/forms/leaver/dashboard.php?page=page1&type="+encodeURIComponent(type)+"&pg="+encodeURIComponent(pg)+"&emp="+encodeURIComponent(emp)
     })
})

另外要确保.leave_info元素的data-*属性都正确设置了值,不然还是会出现参数为空的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 03:08:19