Как сохранить select

Изображение яТ by Martina

PHP как сохранить значение select?


Сохранить значения select из html формы при загрузке страницы без использования базы данных, возможно при помощи сессий или куков.
Так как значение будет сохраняться для определенного пользователя лучше использовать куки, но и сохранение в сессию тоже будет не хуже.
В данном примере сохранять мы будем в куки по средствам php, возвращать это значение мы будем через javascript подставляя значение из куков.


Предположим мы имеем такую форму…
<form method='POST' action='index.php'>

		<select id='seleValueSave' name='seleValueSave'>
		<option name='sele' value='SelectOne'>Выбор один</option>
		<option name='sele' value='SelectTwo'>Выбор два</option>
		<option name='sele' value='SelectThree'>Выбор три</option>
		</select>

		<input type='submit' id='buttonSubmit' name='buttonSubmit' value='Отправка' />
</form>

При отправке выбора значения нашей формы в php, сразу сохраняем в куки.
// Заносим наш POST запрос в переменную
$sele = $_POST['seleValueSave'];
И далее по принципу сравнения делаем сохранения.

if ($sele === "SelectOne") {
  //Ваш код
  //...

  //Устанавливаем в куки. ( "Название куки", "ЗНАЧЕНИЕ КУКИ", "ВРЕМЯ 1 ЧАС", "ПУТЬ КУКИ" )
  setcookie("selectForm", "One", time() + 3600*1, "/");
}

if ($sele === "SelectTwo") {
  //Ваш код
  //...

  //Устанавливаем в куки. ( "Название куки", "ЗНАЧЕНИЕ КУКИ", "ВРЕМЯ 1 ЧАС", "ПУТЬ КУКИ" )
  setcookie("selectForm", "Two", time() + 3600*1, "/");
}

if ($sele === "SelectThree") {
  //Ваш код
  //...

  //Устанавливаем в куки. ( "Название куки", "ЗНАЧЕНИЕ КУКИ", "ВРЕМЯ 1 ЧАС", "ПУТЬ КУКИ" )
  setcookie("selectForm", "Three", time() + 3600*1, "/");
}
Теперь при выборе нужного значения из формы, происходит сохранения нужного значения в куки по средствам php.

Возвращать нужное значение будем при помощи javascript, для этого создаем метод чтения куков.
//Подключаем библиотеку jQuerry для "$".
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<script>
//Делаем обертку на событие готовности документа, скрипт срабатываем, когда DOM дерево полностью построено.
$(document).ready(function() {

//Метод чтения куков.
function readCookie(name) {
		var nameEQ = name + '=';
		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,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
}

//Читаем куку (Название кука, должно соответствовать названию при setcookie) и заносим в переменную значение кука...
var value = readCookie('selectForm');

//Далее такой же принцип сравнения... (Значение также из setcookie)
if ( value === 'One' ){
    //Возвращаем значение нашей формы.
	$('#seleValueSave').val('SelectOne')
}
if ( value === 'Two' ){
	$('#seleValueSave').val('SelectTwo')
}
if ( value === 'Three' ){
	$('#seleValueSave').val('SelectThree')
}

//Закрываем обертку.
});
</script>
 
Теперь выбор селекта будет сохраняться при помощи куков и при перезагрузки страницы выбранный селект будет возвращаться, действия для сессии будут практически аналогичны.
Надеюсь данная статья будет Вам полезна.
  • avatar
  • 2097
  • 1
  • +1
Файлы в топике: Хотите скачать? Авторизируйтесь! | Нет аккаунта? Зарегистрируйтесь!
Статья "Как сохранить select" содержит 1 комментарий
avatar
Можно так же использовать localstorage
Например:

 <select id="NameSelectId" name="NameSelectName" >
	<option value="">None</option>
	 <option value="Test1">Test1</option>
 </select>



if (localStorage['NameSelectName']) {
	document.getElementById('NameSelectId').value = localStorage['NameSelectName'];
	 if(document.getElementById('NameSelectId').value == "") {
			//code...
	 }
	 if(document.getElementById('NameSelectId').value == "Test1") {
			//code2..
	 }

Оставить комментарий

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.