簡體   English   中英

使用history.back()時如何傳遞GET值?

[英]How to pass a GET value when using history.back()?

我有一個變量來檢查數據庫中是否已存在數據。 如果數據已經存在,它將返回到表單頁面以輸入新數據。 這是我所擁有的

<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>

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

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

您可以使用:

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

代替

window.history.back()


您需要能夠將baseurl作為全局變量。 從您的服務器發送並在javascript中將其設置為全局變量。

使用瀏覽器后退很脆弱,因為您無法預測(或檢查)將用戶引向何處。 相反,我建議根據相關的用戶操作或業務邏輯,應用將使用您所需的參數顯式導航到register.php頁面

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

順便說一句,請記住,此URL已保存,用戶可能將其添加為書簽或將其轉發,因此我建議不要使用register.php服務器邏輯,最好不要根據該輸入自動執行操作。 您可能想在register.php加載后使用replaceState(根據jcubic答案)清除歷史記錄狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM