請(qǐng)問(wèn),php執(zhí)行使用者操作的某一個(gè)操作之後(跳轉(zhuǎn)執(zhí)行的,非ajax執(zhí)行)再跳到上次頁(yè)面或其他頁(yè)面給使用者回傳執(zhí)行結(jié)果的提醒,如何實(shí)作該提醒只在本次執(zhí)行跳轉(zhuǎn)請(qǐng)求有效,再次刷新本頁(yè)面後不再存在該資料提醒。
小伙看你根骨奇佳,潛力無(wú)限,來(lái)學(xué)PHP伐。
先執(zhí)行提醒,然後再跳轉(zhuǎn)呢?或是跳轉(zhuǎn)到一個(gè)過(guò)渡頁(yè)面,提醒完之後再跳去目標(biāo)頁(yè)面?
每次跳轉(zhuǎn)前判斷是否存SESSION,如果不存在,則跳轉(zhuǎn).跳轉(zhuǎn)成功之後,寫(xiě)SESSION.
$noticed = $_SESSION['noticed'];
if(isset($noticed)){
//your code here
}
php可以取得到來(lái)源頁(yè)面的連線使用:
$_SERVER[“HTTP_REFERER”]
就能得到來(lái)源頁(yè)面的連接,可以進(jìn)行對(duì)比,是不是從你執(zhí)行的頁(yè)面跳轉(zhuǎn)的。來(lái)進(jìn)行判斷?;蛘呤悄憧梢栽趫?zhí)行成功後給跳轉(zhuǎn)連線後面追加一個(gè)參數(shù)。有參數(shù)的時(shí)候提示執(zhí)行成功。正常刷新不存在提醒。
不過(guò)比較推薦的是你寫(xiě)一個(gè)函數(shù)。傳入提示語(yǔ)和要跳轉(zhuǎn)的頁(yè)面。具體可以參考一些框架的提示做法。
根據(jù)以上幾位的建議:
//跳轉(zhuǎn)調(diào)用
function redirect($url,$message=false)
{
if($message){
foreach ($message as $key => $value) {
if(is_array($value)){
$_SESSION['RedirectMessage'][$key] = implode(',', urlencode($value));
}else{
$_SESSION['RedirectMessage'][$key] = urlencode($value);
}
}
}
header('location:'.$url);
}
//視圖調(diào)用(在視圖加判斷)
function getMessage($key1)
{
$data = explode(',',$_SESSION['RedirectMessage'][$key1]);
$_SESSION['RedirectMessage'] = null;
if(empty($data)){
return false;
}
foreach ($data as $key => $value) {
$data[$key] = urldecode($value);
}
if(count($data)==1){
return $data[0];
}else{
return $data;
}
}
/**
* 參數(shù)是否存在
*/
function existsParam($key)
{
if(isset($_SESSION['RedirectMessage'][$key])){
return true;
}else{
return false;
}
}