之前有寫過利用JS+AJAX瀏覽器返回上一頁自動更新頁面的教學,但是某些狀況下這方法還是不行的,例如送出A頁面時更改了資料表中某些欄位的狀態數值跟寫入新的資料,如果USER利用瀏覽器返回上一頁又返回A頁面,即使自動更新後顯示的資料也不相同了(例如訂單編號之類的),所以最好的解決方法就是USER返回A頁面時自動轉跳到系統首頁或指定頁面,這樣就不會有這問題產生了!!
方法如下
在樣板端增加以下的JS設定
<script type="text/javascript">
history.pushState({page: 1}, 'title 1', '?barpage=gopage');
</script>
history.pushState可以更改瀏覽器的網址紀錄,但實際網址跟變數還是原本的,例如實際網址是
https://shopfish.com.tw/modules/neilshop/shoppingcart.php?op=shoppingcart2&suid=1&barpage=3
history.pushState會吧網址變更為
https://shopfish.com.tw/modules/neilshop/shoppingcart.php?barpage=gopage
我們就能取$barpage變數值來做判斷
再來在PHP端加個判斷,如果$barpage==gopage,就表示返回頁一頁,系統自動觸發轉跳網址
//網址判斷
if($barpage==gopage){
redirect_header(XOOPS_URL. "/modules/".$xoopsModule->getVar("dirname")."/index.php" ,0 , _MS_SHOPPINGCART283);
}
這樣如果USER透過瀏覽器切換返回上一頁,就會自動轉跳到模組首頁!!
教學撰寫:徐嘉裕 Neil hsu
方法如下
在樣板端增加以下的JS設定
<script type="text/javascript">
history.pushState({page: 1}, 'title 1', '?barpage=gopage');
</script>
history.pushState可以更改瀏覽器的網址紀錄,但實際網址跟變數還是原本的,例如實際網址是
https://shopfish.com.tw/modules/neilshop/shoppingcart.php?op=shoppingcart2&suid=1&barpage=3
history.pushState會吧網址變更為
https://shopfish.com.tw/modules/neilshop/shoppingcart.php?barpage=gopage
我們就能取$barpage變數值來做判斷
再來在PHP端加個判斷,如果$barpage==gopage,就表示返回頁一頁,系統自動觸發轉跳網址
//網址判斷
if($barpage==gopage){
redirect_header(XOOPS_URL. "/modules/".$xoopsModule->getVar("dirname")."/index.php" ,0 , _MS_SHOPPINGCART283);
}
這樣如果USER透過瀏覽器切換返回上一頁,就會自動轉跳到模組首頁!!
教學撰寫:徐嘉裕 Neil hsu
留言
張貼留言