таблица показать / скрыть запомнить выбор

Я новичок и использовал jscript на своей странице php, чтобы скрыть / показать таблицу, используя следующий код:

<script type="text/javascript">
function setTable(what){
if(document.getElementById(what).style.display=="none"){
document.getElementById(what).style.display="block";
}
else if(document.getElementById(what).style.display=="block"){
document.getElementById(what).style.display="none";
}
}
</script>

и отобразить / скрыть table2, используя:

<a href="#" onclick= "setTable('table2')"><img src="/icons/index.png" width="55" height="55"></a>

Моя проблема в том, что при использовании этого кода, в случае любой активности браузера, таблица сбрасывается обратно в состояние по умолчанию. Я изо всех сил пытаюсь разрешить пользователям, когда они показывают / скрывают таблицу, она должна продолжаться, даже когда обновление или навигация происходит на страницах. Я знаю, что я должен использовать куки, но понятия не имею. Пожалуйста, кто-нибудь направит меня.
Спасибо

1

Решение

Используйте куки для хранения состояния таблицы.

<script type="text/javascript">

var tableState = getCookie("table2state");
if (tableState != "") {
document.getElementById('table2').style.display = tableState;
}

function setTable(what) {
if (document.getElementById(what).style.display == "none") {
document.getElementById(what).style.display = "block";
setCookie(what + 'state', "block", 365);
} else if (document.getElementById(what).style.display == "block") {
document.getElementById(what).style.display = "none";
setCookie(what + 'state', "none", 365);
}
}

function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toUTCString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}

function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1);
if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
}
return "";
}
</script>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]