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

时间:2016-04-15 10:49:07

标签: javascript php

表单提交后,我想重定向到另一个页面,我需要从Previous提交的表单中获取值。

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

我这样做:

<script>
var id = <?php echo $data['base_ini_id']."?&ext=".$data['ext']; ?>

window.location.replace("./edit_ini_custom/"+id);
</script>

或者我还能根据需要做些什么吗?

4 个答案:

答案 0 :(得分:2)

获取变量(始终)通过URL传递。所以基本上你应该使用:

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

现在,根据目标网址的格式,您可以选择构建目标网址的方式。以下是一些常见示例: 格式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; 但是使用它会将重定向添加到历史记录中,允许用户点击“返回”,我不确定这是你想要的。

希望这有帮助

答案 1 :(得分:0)

从下一页开始,无法访问已提交的表单(在上一页中)。

因此,简而言之,您的问题的答案是否定的。

您需要以下列方式之一实施: -

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

答案 2 :(得分:0)

您可以通过设置标题位置

来执行PHP重定向
header("Location: ".$data['base_ini_id']."?&ext=".$data['ext']);

这比我建议的方式更方便。

答案 3 :(得分:0)

Finally Got an Answer:

<script>
var id = <?php echo $data['base_ini_id']; ?>

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

I can pass the PHP Variable as PARAMETER And On the Function Where I need it i Just Have to Do :

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