我们可以在javascript url中传递GET变量吗

Can we pass GET variables in javascript url?

本文关键字:GET 变量 url javascript 我们      更新时间:2023-09-26

表单提交后,我想重定向到另一个页面,在那里我需要以前提交的表单中的值。

所以在我的重定向脚本中,我想在GET 中传递这些值

我在做这个:

<script>
var id = <?php echo $data['base_ini_id']."?&ext=".$data['ext']; ?>
window.location.replace("./edit_ini_custom/"+id);
</script>

或者我还有什么可以根据需要做的吗?

Get变量(总是)通过URL传递。所以基本上你应该使用:

var redirectUrl = "yourUrlWithVariables";
window.location.replcae(redirectUrl);

现在,取决于目标URL的格式,以及组成目标URL的方式。以下是一些常见的示例:格式1:baseUrl.com/page?paramName1=paramValue1&paramName2=paramValue2

var baseId = '<?=$data['base_ini_id'];?>';
var extId = '<?=$data['ext'];?>';
var baseUrl = "baseUrl.com/edit_ini_custom?base_ini_id="+baseId+"&ext="+extId;

格式2:baseUrl.com/page/paramValue

var extId = '<?=$data['ext'];?>';
var baseUrl = "baseUrl.com/edit_ini_custom/"+extId;

格式3:baseUrl.com/page/paramName/paramValue

var extId = '<?=$data['ext'];?>';
var baseUrl = "baseUrl.com/edit_ini_custom/ext/"+extId;

格式4:baseUrl.com/page/paramName1/paramValue1/paramName2/paramValue2

var baseId = '<?=$data['base_ini_id'];?>';
var extId = '<?=$data['ext'];?>';
var baseUrl = "baseUrl.com/edit_ini_custom/base_ini_id/"+baseId+"/ext/"+extId;

请注意,这只是指导原则,在任何情况下,在分析和构建目标URL后,都必须调用window.location.replace(baseUrl)。其他选项只需使用:window.location=baseUrl;但使用它会将重定向添加到历史记录中,允许用户进行"反击",我不确定这是否是你想要的。

希望这能帮助

已经提交的表单(在上一页中)不能从下一页访问。

简而言之,你的问题的答案是否定的。

您需要通过以下方式之一实现:-

  • 将值存储在用户的会话对象中(如果您已经实现了登录)
  • 使用Http Cookie或浏览器的localStorage来存储值
  • 将该值作为隐藏变量保存到服务器并在后续页面中获取

您可以通过设置头Location来执行PHP重定向

header("Location: ".$data['base_ini_id']."?&ext=".$data['ext']);

我想这将是一种比你建议的更方便的方式。

终于得到了答案:

<script>
var id = <?php echo $data['base_ini_id']; ?>
window.location.replace("./edit_ini_custom/"+id+"/"+<?php echo $data['ext']; ?>);
</script>

我可以将PHP变量作为PARAMETER传递,在我需要它的函数上,我只需要做:

public function edit_ini_custom($id,$ext)
{
   echo $ext;
   //code
}