使用history.back()时如何传递GET值?

时间:2018-07-23 06:16:41

标签: javascript php

我有一个变量来检查数据库中是否已经存在数据。 如果数据已经存在,它将返回到表单页面以输入新数据。这就是我所拥有的

<script type="text/javascript">
        window.history.back();
        window.location = 'register.php?msg='<?php echo 1;?>
</script>

我也尝试过,但是我不知道如何在URL中传递它:

<script type="text/javascript">
        window.history.back();
        window.alert('<?php $msg = 1; echo $msg;?>')
</script>

3 个答案:

答案 0 :(得分:1)

您可以使用History API更改网址:

history.back();
history.replaceState({}, "Registration", "register.php?msg=1");
location.reload();

答案 1 :(得分:0)

您可以使用:

window.location = "baseurl/route?get=var"

代替

window.history.back()


您需要能够将baseurl作为全局变量。将其从服务器发送并在javascript中设置为全局变量。

答案 2 :(得分:0)

使用浏览器返回很脆弱,因为您无法预测(或检查)将用户引向何处。 相反,我建议根据相关的用户操作或业务逻辑,该应用应使用所需的参数显式导航到register.php页面

// some code handling 
var dataAlreadyPresent = checkIt();
if (dataAlreadyPresent) {
   window.location = "/register.php?msg=yourMsg";
}

顺便说一句,请记住,此URL已保存,并且用户可能将其添加为书签或转发,因此,我建议您最好register.php服务器逻辑不要根据该输入自动执行操作。您可能想在register.php加载后使用replaceState(根据jcubic答案)清除历史记录状态。