сохранение состояния флажка при перезагрузке

как сохранить состояние флажка через сеансы? Я использую этот код jquery для переключения параметров:

$('div.check input:checkbox').bind('change',function(){ $('#'+this.id+'txt').toggle($(this).is(':checked')); }); 

но когда я перезагружаюсь, флажки возвращаются к состоянию по умолчанию. я знаю, что мне придется использовать сеансы, но как я могу сделать состояние флажка упорным, используя сеансы в php?

HTML:

 <div class="check"> <p><input type="checkbox" value="Name" id="name" checked /> <label for="name">Name</label></p> <p><input type="checkbox" value="Reference " id="reference" checked /> <label for="reference">Reference</label></p> </div> <div id="nametxt"> Show Name TEXT </div> <div id="reftxt"> Show Ref TEXT </div> 

Чисто в JavaScript поддерживает localStorage если он доступен, в противном случае используется document.cookie .

 function getStorage(key_prefix) { // this function will return us an object with a "set" and "get" method // using either localStorage if available, or defaulting to document.cookie if (window.localStorage) { // use localStorage: return { set: function(id, data) { localStorage.setItem(key_prefix+id, data); }, get: function(id) { return localStorage.getItem(key_prefix+id); } }; } else { // use document.cookie: return { set: function(id, data) { document.cookie = key_prefix+id+'='+encodeURIComponent(data); }, get: function(id, data) { var cookies = document.cookie, parsed = {}; cookies.replace(/([^=]+)=([^;]*);?\s*/g, function(whole, key, value) { parsed[key] = decodeURIComponent(value); }); return parsed[key_prefix+id]; } }; } } jQuery(function($) { // a key prefix is used for the cookie/storage var storedData = getStorage('com_mysite_checkboxes_'); $('div.check input:checkbox').bind('change',function(){ $('#'+this.id+'txt').toggle($(this).is(':checked')); // save the data on change storedData.set(this.id, $(this).is(':checked')?'checked':'not'); }).each(function() { // on load, set the value to what we read from storage: var val = storedData.get(this.id); if (val == 'checked') $(this).attr('checked', 'checked'); if (val == 'not') $(this).removeAttr('checked'); if (val) $(this).trigger('change'); }); }); 

Доступна демон jsFiddle – нажмите несколько флажков , затем снова запустите скрипт!

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

Есть способ, но вам нужно сделать некоторые изменения курса, они будут работать, если вы отправите через форму или JQuery с тем же именем параметра (здесь name_txt и ref_txt).

введите флажок в поле ввода имени

 <?php if(isset($_REQUEST['name_txt'])) $name_text = $_REQUEST['name_txt']; if(isset($_REQUEST['ref_txt'])) $ref_text = $_REQUEST['ref_txt']; ?> <p><input type="checkbox" name = "name_txt" value="Name" id="name" <?php echo ($name_text == 'Name' || !isset($name_text))?'checked':'';?> /> <label for="name">Name</label></p> <p><input type="checkbox" name = "ref_txt" value="Reference " id="reference" <?php echo ($ref_text == 'Reference' || !isset($ref_text))?'checked':'';?> /> <label for="reference">Reference</label></p>