2014-02-20 22 views
0

我正在更新我的網站到一個更移動友好的響應式設計使用jquerymobile。通常我有用戶登錄,在檢查完細節後,它會刷新到新頁面。 但是,我無法與jquerymobile一起工作。推測這是因爲Ajax覆蓋功能? Ajax是目前國外對我:) 刪節的腳本是象下面這樣:標題刷新不工作與jquery移動

else 
//else, all ok proceed with login 
{ 
if(isset($_GET['redirect'])) 
{header ("Refresh: 0; URL=" . $_GET['redirect'] . "");} 
else{header ("Refresh: 0; URL=cohome.php"); 
echo "Your login was successful, you are being redirected in one second <br />"; 
echo "(If your browser doesn't support this, <a href=\"cohome.php\">click here</a>)";} 
} 

千恩萬謝

其實,把事情簡單化。我的註銷按鈕有同樣的問題。

<a href="logout.php"> 

導致

<?php 
session_start(); 
// make double sure that logged out. 
$_SESSION['logged'] = "0"; 
session_destroy(); 
header("Refresh: 0; URL=index.php"); 

echo "You have been logged out.<br />"; 
echo "You are being redirected to the homepage!<br />"; 
echo "(If your browser doesn't support this, <a href=\"index.php\">click here</a>)"; 
?> 

不幸的是,沒有發生重定向。它在我的標準網站上運行良好,只是因爲開始切換到jquery mobile。

+0

編輯爲更清晰一些 – devsie

回答

0

刷新爲0的標題沒有多大意義。考慮使用

header('location:' . $_GET['redirect']); 

代替。或者,如果您希望顯示重定向消息,請增加刷新時間。最後但並非最不重要的是,您也可以回顯刷新:

echo "<meta http-equiv='refresh' content='3; url=" . $_GET['redirect']) . "'>"; 

但是,不建議使用元刷新。但是,如果你正在使用JS和依賴它,你也可以使用JS重定向:

echo "setTimeout(\"location.href = '" . $_GET['redirect']) . "';\", 3000);"; 

有幾種方法,但以0秒刷新PHP是不是在我看來,最好的主意。

+0

設置爲零的頭刷新只是拂過用戶,除非他們在一個非常糟糕的連接等。增加刷新時間爲1沒有任何區別。嘗試標題('位置'不工作)。我將不得不剝去它,看看它出錯的地方。 – devsie

0

好的。它似乎工作正常,如果我關閉ajax,使用「data-ajax = false」。

<form name="login" id="login" action="<?php echo "processCoLogin.php?".$_SERVER['QUERY_STRING']; ?>" data-ajax=false method="post"> 

<a href="logout.php" class="ui-btn" data-ajax=false>Log out</a> 

但我更喜歡一個解決方案,我沒有關閉AJAX &使用標頭(位置)仍可以重定向。