Добавление класса в тело в PHP и сохранение его с помощью сеанса

Я пытался понять это самостоятельно, но, похоже, я не могу его отсортировать.

Я создаю раздел доступности на клиентском сайте, и у меня есть две кнопки, кнопки добавляют класс к телу, один – font-size другой – greyscale .

Мне нужно, чтобы эти классы оставались на теле, пока не щелкнули снова, чтобы удалить, так как пользователи не хотят, чтобы они нажимали кнопки, чтобы видеть сайт.

Я хочу хранить эти классы в сеансе или в файле cookie, но, проведя некоторое чтение, сеансы хранят файлы cookie в любом случае, так что лучший вариант.

Я использую wordpress для сайта, поэтому, если есть что-то, что я могу использовать функцию мудрый, это было бы полезно знать!

Может кто-нибудь мне помочь?

Если вы хотите использовать localStorage, вы можете использовать этот код.

 // Check if localStorage is supported if ('localStorage' in window && typeof localStorage == 'object') { $(document).ready(function() { // Set the class if greyscale is set // Note that localStorage saves everything as strings if (localStorage["greyscale"] == "1") { $('body').addClass('greyscale'); } // Register click listener for the button $('#button').click(function() { // Toggle greyscale on and off if (localStorage["greyscale"] != "1") { $('body').addClass('greyscale'); localStorage["greyscale"] = "1"; } else { $('body').removeClass('greyscale'); localStorage["greyscale"] = "0"; } }); // - button click }); // - doc ready } 

JSFiddle

Сессия обычно использует файлы cookie, но данные хранятся на стороне сервера, а cookie используется только для идентификации.

Предполагая, что у вас нет причин знать, пользуется ли пользователь серой шкалой на стороне сервера, вы можете сделать это полностью в JS.

Например, используя некоторый аккуратный плагин jQuery для файлов cookie https://github.com/carhartl/jquery-cookie

 //set cookie and add class on button click $('#button').click(function(){ $.cookie('greyscale', true); $('body').addClass('greyscale'); }); //check for cookie on document load $(function(){ if($.cookie("greyscale")){ $('body').addClass('greyscale'); } }); 

Также имейте в виду, что этот файл cookie будет отправлен на сервер и обратно снова и снова, поэтому, если вам это не нужно на стороне сервера, вы должны использовать более современное решение, такое как HTML5 localStorage. Существует несколько библиотек, которые можно использовать для хранения данных на стороне клиента. Они используют современные функции и возвращаются к старым (например, куки) в старых браузерах. Например, проверьте http://pablotron.org/software/persist-js/ .

Как упоминалось в этом ответе :

Основное различие заключается в том, что данные сеанса хранятся на сервере, а данные cookie хранятся на клиенте. Таким образом, клиент может легко изменить содержимое файла cookie, но ему придется больше работать, чтобы изменить содержимое сеанса.

Есть несколько способов приблизиться к этому

1) Храните информацию в $ _SESSION.

2) Храните информацию в файле cookie.

Основываясь на вашем случае и на данных, которые вы хотите сохранить (которые не являются критическими), я предлагаю вам хранить его в файле cookie и не беспокоить сервер, чтобы отслеживать каждого пользователя.

Вы можете легко хранить информацию в cookie через javascript.

Вот ссылка на cookie для javascript для вас:

http://www.w3schools.com/js/js_cookies.asp

После сохранения вашей информации внутри файла cookie вы можете получить информацию, хранящуюся в файле cookie, с помощью javascript или php. Имейте в виду: Javascript = клиентская сторона (сервер не будет беспокоить), и после того, как ваш дом будет готов, вам придется добавить соответствующий класс к вашему телу. PHP = сторона сервера, что означает, что вам не нужно добавлять класс после того, как dom готов и распечатайте ваш html с соответствующим классом, уже установленным в элементе.

Ссылки на PHP cookie:

http://www.w3schools.com/php/php_cookies.asp

http://davidwalsh.name/php-cookies

Храните его в файле cookie.

Используя файлы cookie, вы можете выбрать, когда истечет срок действия файла cookie, при использовании сеансов – когда сеанс уничтожается, информация теряется, например. когда пользователь выходит из системы.

Пользователь должен вручную удалить ваш файл cookie, чтобы удалить «информацию о классе тела»,