2012-04-25 81 views
3

我使用jQuery更新和加載搜索結果和頁面底部的頁面導航。我有一個jQuery滑塊和幾個帶複選框的HTML表單,對於我設置cookie(更改時)的每個元素,並使用​​來加載load_search.php中的內容,該內容在所有瀏覽器中都能很好地工作。

現在我使用相同的方法來上傳頁面導航,並且我得到了非常奇怪的結果。在search.php中,jQuery的代碼是:

// PAGE NAVIGATION // 

$('#page_navigation').on("click", ".page_no_item" , function(event) { 
     var id = (event.target.id); 
     $.cookie("cur_page_no", id); 
     search_results_load(); 
     page_navigation_load(); 
     alert($.cookie("cur_page_no")); // -> returns the right cookie value 
    }); 

也,我查看文件準備的價值,可以肯定的:

$(document).ready(function() { 
     alert($.cookie("cur_page_no")); // -> also returns the right cookie value 
    }); 

.php文件我加載,在NO- webkit瀏覽器,$_COOKIE['cur_page_no']返回正確的值,只是在webkit瀏覽器中,它總是返回1(如果Cookie爲空或未設置,我將其作爲標準提供)。 var_dump()在webkit瀏覽器中始終返回string(1) "1"

注:我試圖運行它不在本地主機上,但問題依然存在。另請注意,我使用完全相同的方式來讀取其他cookie(例如,對於選中的複選框),並返回正確的值。

任何想法或提示都非常感謝!非常感謝您提前! :)

+0

你在使用本地主機嗎? – 2012-04-25 19:51:56

+0

你能告訴你如何在PHP中設置cookie嗎? – 2012-04-25 19:52:57

+0

@丹李:是的,我在本地主機上工作,但如前所述,也嘗試127.0.0.1,甚至上傳到網絡服務器,仍然是同樣的問題。此外,其他餅乾工作正常,設置相同的方式... – Chris 2012-04-25 19:55:10

回答

2

當我面對這個問題時,似乎在幾個實例中,實際上有兩個同名的cookie。其中之一是php創建的cookie,另一個是javascript創建的cookie。在其他情況下,只有一個cookie,但是在完整頁面重新加載之前,php不會正確輸出更新後的值。

加載新頁面導致cookie所需的「新」值被讀取,這是有問題的。因此,處理php遲到cookie更新效果的一種方法是同時使用可用的cookie方法,並且也僅設置$_COOKIE['yourCookieName'] = $val

不幸的是,我不得不堅持使用的解決方案是使用JS或PHP完全處理特定的cookie,並堅持使用它,這是我唯一能夠從未擁有並讀取/更新/重複問題

+0

好的,謝謝克里斯蒂安......我會給它一個鏡頭! – Chris 2012-04-25 19:57:19

+0

好吧,我不知道爲什麼只發生這個cookie,但再次感謝你克里斯蒂安,我設法解決它! :) – Chris 2012-04-25 20:06:55

相關問題