从CodeIgniter设置cookie并使用javascript获取值

时间:2019-08-05 03:20:13

标签: javascript jquery codeigniter cookies

我正在尝试从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'))

我从here获得了该函数,但对我的代码不起作用。反正有实现此目标的方法吗?

2 个答案:

答案 0 :(得分:1)

您的JavaScript代码没有任何问题。可能是因为尚未设置Cookie而发生的。您只需将expire值添加到cookie中,将其设置为任何数字(以秒为单位),或将0设置为立即禁用。

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

答案 1 :(得分:0)

要读取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'); 这已多次为我工作,希望它也为您工作。