簡體   English   中英

從 CodeIgniter 設置 cookie 並使用 javascript 獲取值

[英]Set cookie from CodeIgniter and get the value with javascript

我正在嘗試從 cookie 中獲取一些數據。 我用 CodeIgniter 設置了 cookie,這是我的代碼

$c = array('name' => 'total', 'value' => $total, 'path' => '/');
$this->input->set_cookie($c);

然后,我想用 javascript 獲取數據。 這是我試過的

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);
    }
  }
}

console.log(getCookie('total'))

我從這里得到了這個函數,但它對我的代碼不起作用。 有沒有辦法做到這一點?

您的 javascript 代碼沒有任何問題。 可能是因為 cookie 尚未設置。 您只需將expire值添加到您的 cookie,將其設置為任意數字(以秒為單位)或0以將其設置為立即禁用。

$c = array('name' => 'total', 'value' => $total, 'path' => '/', 'expire' => 0);
$this->input->set_cookie($c);

要讀取 cookie,您可以使用它

function readCookie(name) {
let nameEQ = encodeURIComponent(name) + '=';
let ca = document.cookie.split(';');
for (let i = 0; i < ca.length; i++) {
    let c = ca[i];
    while (c.charAt(0) === ' ')
        c = c.substring(1, c.length);
    if (c.indexOf(nameEQ) === 0)
        return decodeURIComponent(c.substring(nameEQ.length, c.length));
}
return null;

}

readCookie('total'); 這對我有用過多次,希望它也適用於你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM