2013-03-22 196 views
0

好吧,這是我需要做的。不確定如何去做。我有一個PHP頁面運行index.php是我的主頁加載並帶來menu.php和其他一些子文件。所以這是我的問題。我有一個用java編寫的下拉菜單,然後我還有一個鏈接到的Jquery腳本來爲頁面生成標題。發生什麼事的是當我點擊菜單中的鏈接時,顯示標題一分鐘,然後消失,因爲它進入一個新的頁面。如果我添加一個返回false它的停止和工作,但不會將您轉到新的頁面當然。所以這是我的問題。我需要設置一個變量即時消息假設或東西來保存點擊的值,並將其帶到新頁面,我不知道該怎麼做。這是我的菜單代碼。爲jquery設置一個全局變量以攜帶多個頁面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 


    <link rel="stylesheet" type="text/css" href="main.css" /> 
    <link rel="stylesheet" type="text/css" href="css/default.css"> 
    <link rel="stylesheet" type="text/css" href="css/css-slider.css"> 
    <script type="text/javascript" src="Scripts/jquery-1.7.1.js"></script> 
    <script src="css/active.js" type="text/javascript"> 
    </script> 
    <script src="css/drop1.js" type="text/javascript"> 
    </script> 

    </script> 


<!--Main Navigation Start --> 

    <div id="nav" class="nav"> 
    <ul id="sddm"> 
    <li><a class="navigation" value="home" id="Home" href="index.php" onMouseOver="mopen('m1')" onMouseOut="mclosetime()">Home</a> 
    <div id="m1" onMouseOver="mcancelclosetime()" onMouseOut="mclosetime()"> 
    </div> 
    </li> 
    <li><a class="navigation" id="Station History" href="station_history.php" onMouseOver="mopen('m2')" onMouseOut="mclosetime()">Station History</a> 
    <div id="m2" onMouseOver="mcancelclosetime()" onMouseOut="mclosetime()"> 
    </div> 
    </li> 
    <li> 
    <a class="navigation" id="Apparatus" href="Apparatus.php" onMouseOver="mopen('m3')" onMouseOut="mclosetime()">Apparatus</a> 
    <div id="m3" onMouseOver="mcancelclosetime()" onMouseOut="mclosetime()"> 
    <a class="navigation" id="Truck History" href="truck_history.php">Truck History</a> 
    </div> 
    </li> 
    <li> 
    <a class="navigation" id="Photo Gallery" href="photos.php" onMouseOver="mopen('m4')" onMouseOut="mclosetime()">Photos</a> 
    <div id="m4" onMouseOver="mcancelclosetime()" onMouseOut="mclosetime()"> 
    </div> 
    </li> 
    <li> 
    <a class="navigation" id="News & Events" href="news_events.php" onMouseOver="mopen('m5')" onMouseOut="mclosetime()">News & Events</a> 
    <div id="m5" onMouseOver="mcancelclosetime()" onMouseOut="mclosetime()"> 
    </div> 
    </li> 
    <li> 
    <a class="navigation" id="Station Members" href="Station_members.php" onMouseOver="mopen('m6')" onMouseOut="mclosetime()">Station Members</a> 
    <div id="m6" onMouseOver="mcancelclosetime()" onMouseOut="mclosetime()"> 
    </div> 
    </li> 
    <li> 
    <a class="navigation" id="Education" href="education.php" onMouseOver="mopen('m7')" onMouseOut="mclosetime()">Education</a> 
    <div id="m7" onMouseOver="mcancelclosetime()" onMouseOut="mclosetime()"> 
    <a class="navigation" id="Station Tours" href="">Station Tours</a> 
    <a class="navigation" id="Fire Extinguisher" href="">Fire Extinguisher</a> 
    <a class="navigation" id="First Aid & CPR" href="">First Aid & CPR</a> 
    <a class="navigation" id="Smoke Alarms" href="">Smoke Alarms</a> 
    </div> 
    </li> 
    <li> 
    <a class="navigation" id="Contact Us" href="contactus.php" onMouseOver="mopen('m8')" onMouseOut="mclosetime()">Contact Us</a> 
    <div id="m8" onMouseOver="mcancelclosetime()" onMouseOut="mclosetime()"> </div> 
    </li> 
    </ul> 
    </div> 
    </div> 

</body> 
</html> 

<!DOCTYPE html> 

這裏是我的Jquery

//navigation 

$(document).ready(function() { 

    //var mname = ($(this).attr('id')); 
    $("a.navigation").click(function() { 
     //alert($(this).attr('id')); 
     $("span#title").html($(this).attr('id')); 


    }) 
}); 

,這裏是我的下拉

 <!-- 
    var timeout   = 500; 
    var closetimer = 0; 
    var ddmenuitem  = 0; 

// open hidden layer 
function mopen(id) 
{ 
    // cancel close timer 
    mcancelclosetime(); 

    // close old layer 
    if(ddmenuitem) ddmenuitem.style.visibility = 'hidden'; 

    // get new layer and show it 
    ddmenuitem = document.getElementById(id); 
    ddmenuitem.style.visibility = 'visible'; 

} 
// close showed layer 
function mclose() 
{ 
    if(ddmenuitem) ddmenuitem.style.visibility = 'hidden'; 
} 

// go close timer 
function mclosetime() 
{ 
    closetimer = window.setTimeout(mclose, timeout); 
} 

// cancel close timer 
function mcancelclosetime() 
{ 
    if(closetimer) 
    { 
    window.clearTimeout(closetimer); 
    closetimer = null; 
    } 
} 

// close layer when click-out 
document.onclick = mclose; 
// --> 

我完全stumpped關於如何做到這一點,真的會感激幫助一些原因。

+0

頁面重新加載時會丟失變量,您需要cookie或本地存儲。 – adeneo 2013-03-22 00:38:54

+0

雖然對於基於會話的解決方案,您可以在會話或cookie中設置值,但您必須將該變量發送到服務器 – Brad 2013-03-22 00:39:30

+0

這就是我的想法,但我該如何設置本地存儲?我不熟悉那個命令。 – dkrider471 2013-03-22 00:41:35

回答

0

使用Cookies!下面是一些JavaScript:

function setCookie(c_name, value, exdays) { 
    var exdate = new Date(); 
    exdate.setDate(exdate.getDate() + exdays); 
    var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString()); 
    document.cookie = c_name + "=" + c_value; 
} 
function getCookie(c_name){ 
    var i,x,y,ARRcookies = document.cookie.split(";"); 
    for (i = 0; i < ARRcookies.length; i++) 
    { 
     x = ARRcookies[i].substr(0,ARRcookies[i].indexOf("=")); 
     y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1); 
     x = x.replace(/^\s+|\s+$/g,""); 
     if (x == c_name) 
     { 
     return unescape(y); 
     } 
    } 

}

+0

如果我不必這樣做,我寧願不做餅乾,但如果我能以某種方式傳遞id名稱,那麼url可能會成爲我喜歡的方式?我不確定如何做到這一點?任何人有任何建議? – dkrider471 2013-03-22 03:10:46

2

全局變量只持續一個給定頁面的生命週期,使他們不會在多個頁面持續。因此,要將數據從一個頁面傳遞到另一個頁面,必須將數據存儲在瀏覽器或服務器的某個位置,以便後續頁面可以檢索這些數據。

您的存儲或通過在瀏覽器中的數據選項有:

  1. 商店在cookie中的數據,然後從後續頁面上的cookie中檢索它。
  2. 將數據存儲在本地存儲中,然後從後續頁面的本地存儲中檢索。
  3. 當去到下一個頁面,編碼在URL中的數據你會(作爲查詢參數或作爲哈希值,然後從URL檢索數據與JavaScript中的下一個頁面。

選項1和2最適合需要訪問大量頁面的數據,所有瀏覽器的所有版本都支持Cookie(儘管偶爾用戶會阻止它們)本地存儲是一個更簡潔的API,並且在所有現代瀏覽器中都受支持,但在某些舊版本的瀏覽器中不支持,每個域可以存儲的數據量在Cookie中比在本地存儲中受到更多限制

請記住,選項1和2只能在同一個域中工作。無法在存儲數據的域外訪問Cookie和本地存儲。

請參閱this article on MDN用於讀取/寫入cookie。

請參閱this article on MDN用於讀取/寫入本地存儲,其中包括兼容性庫,如果本地存儲不可用,則會退回到Cookie。

相關問題