12.08.2016, 01:18
|
Профессор
|
|
Регистрация: 09.01.2013
Сообщений: 167
|
|
работа document.cookie
Здравствуйте!
Есть код
$(function() {
$left = $(".leftname2"), $contex = $(".contextlink0");
$left.on("click", function() {
$left.not($(this).addClass("active")).removeClass("active");
var i = $left.index(this);
$contex.not($contex.eq(i).show()).hide();
if(id == "page1"){document.cookie="m_sf1=1; path=/;";}
if(id == "page2"){document.cookie="m_sf1=2; path=/;";}
if(id == "page3"){document.cookie="m_sf1=3; path=/;";}
})
});
<div class="leftname2 active" onclick="show('page1');return false;">Новые</div><div class="leftname2" onclick="show('page2');return false;">Обсуждаемые</div><div class="leftname2" onclick="show('page3'); return false;">Интересные</div>
</div>
<div class='menuleft'>
<div id="page1" class="contextlink0">
<div class="com_line"><a href="/forum_topic_view.php?gr=27">Анекдоты</a></div>
<div class="com_details"><div class='font12'><a href='/userinfo.php?str=5'>potapows</a><span class="font10"><span class='forum-posts4' title='Просмотров'>7 Августа 2016 в 20:51</span></span></div></div>
<div class="com_line"><a href="/forum_topic_view.php?gr=3">Новый буксик</a></div>
<div class="com_details"><div class='font12'><a href='/userinfo.php?str=3'>Добрый</a><span class="font10"><span class='forum-posts4' title='Просмотров'>26 Июля 2016 в 20:32</span></span></div></div>
<div class="com_line"><a href="/forum_topic_view.php?gr=2">Правила проекта</a></div>
<div class="com_details"><div class='font12'><a href='/userinfo.php?str=1'>Winko.Ru</a><span class="font10"><span class='forum-posts4' title='Просмотров'>25 Июля 2016 в 19:03</span></span></div></div>
<div class="com_line"><a href="/forum_topic_view.php?gr=1">Мы открылись!</a></div>
<div class="com_details"><div class='font12'><a href='/userinfo.php?str=1'>Winko.Ru</a><span class="font10"><span class='forum-posts4' title='Просмотров'>25 Июля 2016 в 19:01</span></span></div></div>
</div>
<div id="page2" class="contextlink0">
<div class="com_line"><a href="/forum_topic_view.php?gr=2">Правила проекта</a></div>
<div class="com_details"><div class='font12'><a href='/userinfo.php?str=1'>Winko.Ru</a><span class="font10"><span class='forum-posts3' title='Комментариев'>27</span><a href="/forum_topic_view.php?gr=2"><span class='comment-answer'> </span>Ответить</a></span></div></div>
<div class="com_line"><a href="/forum_topic_view.php?gr=3">Новый буксик</a></div>
<div class="com_details"><div class='font12'><a href='/userinfo.php?str=3'>Добрый</a><span class="font10"><span class='forum-posts3' title='Комментариев'>25</span><a href="/forum_topic_view.php?gr=3"><span class='comment-answer'> </span>Ответить</a></span></div></div>
<div class="com_line"><a href="/forum_topic_view.php?gr=27">Анекдоты</a></div>
<div class="com_details"><div class='font12'><a href='/userinfo.php?str=5'>potapows</a><span class="font10"><span class='forum-posts3' title='Комментариев'>23</span><a href="/forum_topic_view.php?gr=27"><span class='comment-answer'> </span>Ответить</a></span></div></div>
<div class="com_line"><a href="/forum_topic_view.php?gr=1">Мы открылись!</a></div>
<div class="com_details"><div class='font12'><a href='/userinfo.php?str=1'>Winko.Ru</a><span class="font10"><span class='forum-posts3' title='Комментариев'>1</span><a href="/forum_topic_view.php?gr=1"><span class='comment-answer'> </span>Ответить</a></span></div></div>
</div>
<div id="page3" class="contextlink0">
<div class="com_line"><a href="/forum_topic_view.php?gr=3">Новый буксик</a></div>
<div class="com_details"><div class='font12'><a href='/userinfo.php?str=3'>Добрый</a><span class="font10"><span class='forum-posts2' title='Просмотров'>879</span><a href="/forum_topic_view.php?gr=3"><span class='comment-answer'> </span>Ответить</a></span></div></div>
<div class="com_line"><a href="/forum_topic_view.php?gr=2">Правила проекта</a></div>
<div class="com_details"><div class='font12'><a href='/userinfo.php?str=1'>Winko.Ru</a><span class="font10"><span class='forum-posts2' title='Просмотров'>493</span><a href="/forum_topic_view.php?gr=2"><span class='comment-answer'> </span>Ответить</a></span></div></div>
<div class="com_line"><a href="/forum_topic_view.php?gr=1">Мы открылись!</a></div>
<div class="com_details"><div class='font12'><a href='/userinfo.php?str=1'>Winko.Ru</a><span class="font10"><span class='forum-posts2' title='Просмотров'>298</span><a href="/forum_topic_view.php?gr=1"><span class='comment-answer'> </span>Ответить</a></span></div></div>
<div class="com_line"><a href="/forum_topic_view.php?gr=27">Анекдоты</a></div>
<div class="com_details"><div class='font12'><a href='/userinfo.php?str=5'>potapows</a><span class="font10"><span class='forum-posts2' title='Просмотров'>201</span><a href="/forum_topic_view.php?gr=27"><span class='comment-answer'> </span>Ответить</a></span></div></div>
</div>
он открываем вкладки, хочу сделать чтоб запомнил какую вкладку, открыл но не сохраняет
на php вывожу вот так
<? echo $_COOKIE['m_sf1'];?>
|
|
12.08.2016, 05:41
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
Сначала вместо этой лапши
if(id == "page1"){document.cookie="m_sf1=1; path=/;";}
if(id == "page2"){document.cookie="m_sf1=2; path=/;";}
if(id == "page3"){document.cookie="m_sf1=3; path=/;";}
напиши одну строку
document.cookie='m_sf1='+id+'; path=/;';
Как записывается кука на жабе я не знаю, считаем что ты правильно записываешь, то есть в куке m_sf1 будет page1, или page2 и так далее, что полезнее, поскольку page1, page2, и так далее - это готовые id, как и следует из кода записи. В куку можно записать 4096 байт, так что на page1 хватит.
Поскольку вкладки управляются жабой, то нет нужды ковырять эту куку на сервере, просто прочитай ее, получи id в переменную и запусти тот же самый код управления вкладками.
Цитата:
|
на php вывожу вот так
<? echo $_COOKIE['m_sf1'];?>
|
Ну получишь где-то в коде циферку и все.
|
|
12.08.2016, 05:55
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от warren buffet
|
Ну получишь где-то в коде циферку и все.
|
Он ее никогда не получит на сервере, ибо кука с неуказанным параметром expires является сессионной и удаляется при закрытии страницы.
|
|
12.08.2016, 05:57
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
Посмотрел твой "есть код", которого там не должно быть вообще. У тебя где-то есть функция show(id){}; судя по onclick="show('page1');return false;" Так ты ее и наполни фаршем.
function show(id){
var ckey='m_sf1';
/*
если id не определено,
то делается попытка получить его из кук
если и там нет, то по умолчанию page1
и новое (или старое) id сразу же сохраняется
*/
if(!id) id = Cookie.load(ckey) || 'page1';
Cookie.save(ckey,id);
/* тут вся твоя лапша */
return false;
}
и тогда
onclick="return show('page1');"
И где-нибудь на загрузке страницы пишешь
show();
без аргументов.
ЗЫ Cookie.load и Cookie.save - это абстракция. Заменяй на свои коды записи чтения куки.
|
|
12.08.2016, 06:02
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
Сообщение от laimas
|
Он ее никогда не получит на сервере
|
У него же jquery, неужели в этой лайбе не предусмотрены гуманные методы чтения-записи кук?
|
|
12.08.2016, 06:08
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
Не предусмотрено блин, офигеть, еще и плугин нужен, оборзели. Короче, вот так должно работать
var Cookie={
save: function(key, value) {
document.cookie = key + '=' + value + '; expires=Fri, 31 Dec 9999 23:59:59 GMT; path=/';
},
load: function (key) {
var keyValue = document.cookie.match('(^|;) ?' + key + '=([^;]*)(;|$)');
return keyValue ? keyValue[2] : null;
}
};
Хотя вроде бы все имена и значения должны быть в кавычках. Хз.
Последний раз редактировалось warren buffet, 12.08.2016 в 06:19.
|
|
12.08.2016, 11:10
|
Профессор
|
|
Регистрация: 09.01.2013
Сообщений: 167
|
|
я не сильно разбираюсь, можно готовый код?
|
|
12.08.2016, 15:38
|
Профессор
|
|
Регистрация: 09.01.2013
Сообщений: 167
|
|
ктонибудь поможет?
|
|
13.08.2016, 00:43
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
Сообщение от porezon
|
ктонибудь поможет?
|
Кука, это не так и сложно, хотя надо предупредить, что бывает "непонятное поведение их" в зависимости от браузера и имени домена.
Сначала прочесть о параметрах кук. Если так затруднительно их устанавливать/проверять посредством document.cookie можете использовать плагин для jQuery.
А ваш JS-сценарий должен выполнять следующее - при загрузке страницы проверять установлена ли кука с нужным именем, и если да, то открыть вкладку в ней указанную, иначе вкладка по умолчанию.
Это может делать и сервер, считывая куку, но лучше отдать это на откуп клиенту.
Щелчки по вкладкам, это запись куки.
Попробуйте, не получится, помогут. Только не надо для примера выкладывать длиииный html, хватит и трех DIV с одним словом.
Последний раз редактировалось laimas, 13.08.2016 в 13:54.
|
|
13.08.2016, 06:17
|
Профессор
|
|
Регистрация: 08.07.2016
Сообщений: 1,332
|
|
Сообщение от laimas
|
бывает "непонятное поведение их" в зависимости от браузера и имени домена.
|
И какова эта зависимость? Например если домен javascript.ru, а браузер Mozilla Firefox, то какого поведения строки текста следует ожидать?
|
|
|
|