2012-01-30 6 views
0

Как настроить cookie через библиотеку jQuery cookie ($.cookie()), только когда страница загружена в первый раз? Я в настоящее время имеют функцию переключения, чтобы изменить значение куки в вопросе о в click случаеУстановить cookie при загрузке первой страницы

$('.family-filter').click(function() { 
    if ($.cookie('ff') == null) { 
     $.cookie('ff', 'on', { 
      expires: 1, 
      path: '/' 
     }); 
    } else { 
     $.cookie('ff', null, { 
      path: '/' 
     }); 
    } 
}); 

Но мне нужно значение по умолчанию, если ни один не установлен уже.

Также рады установить его с помощью PHP, но я предпочел бы в этом случае, чтобы сделать это с помощью Javascript

+0

Вы хотите установить cookie на CLICK или LOAD? Вы явно настраиваете cookie на клик. $ .ready для загрузки страницы. – MatBee

+0

Я не думаю, что вам нужно 'else if'. Если он равен нулю, а затем создать его, должно быть достаточно –

+0

да, 'else if' не нужно ... Я забыл его вынуть. 'Else' необходим, чтобы установить его по ссылке, если он включен, и наоборот. @MatBee, я пробовал установить его на '$ .ready', но я закончил переписывать код выше – Alex

ответ

1

Ну, я решил реализовать это следующим образом:

if ($.cookie('ff') == null) { 
    $.cookie('ff', 'on', { 
     expires: 30, 
     path: '/' 
    }); 
} 

$('.family-filter').click(function() { 
    if ($.cookie('ff') == 'off') { 
     $.cookie('ff', 'on', { 
      expires: 30, 
      path: '/' 
     }); 
    } else { 
     $.cookie('ff', 'off', { 
      path: '/' 
     }); 
    } 
}); 
2

В странице загрузки вы можете установить этот код, чтобы проверить и установить куки

<?php 

if (!isset($_COOKIE["ff"])) { 
    // Expire Time is 30 Days 
    $expire = time() + 60 * 60 * 24 * 30; 
    setcookie('ff', 'on', $expire); 
} 
+0

, да, я мог бы сделать это в домашнем контроллере в codeginiter ... Я попробую – Alex

1

Я добавляю cokkie как так:

if (document.cookie.indexOf('visited=true') == -1) { 
    var thirtydays = 1000*60*60*24*30; 
    var expires = new Date((new Date()).valueOf() + thirtydays); 
    document.cookie = "visited=true;expires=" + expires.toUTCString(); 
} 

Он отлично подходит для меня, и вы можете добавить еще код внутри предложения if, если вам нужно что-то запустить, когда пользователь находится на первом посещении сайта.

+0

спасибо за информацию, но пока Я пытаюсь установить cookie внутри моего домашнего контроллера в codeigniter http://stackoverflow.com/questions/9069521/cant-set-cookie-inside-construct-in-codeigniter – Alex