<!DOCTYPE html>
<html>
<head>
<title>Cookie Monster</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<style type="text/css">
* {margin:0;padding:0;}
body {
font-family: Arial,Helvetica,sans-serif;
}
#main {
padding: 40px;
}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript">
// jQuery cookie plugin: https://github.com/carhartl/jquery-cookie/blob/master/jquery.cookie.js
jQuery.cookie = function (key, value, options) {
// key and at least value given, set cookie...
if (arguments.length > 1 && String(value) !== "[object Object]") {
options = jQuery.extend({}, options);
if (value === null || value === undefined) {
options.expires = -1;
}
if (typeof options.expires === 'number') {
var days = options.expires, t = options.expires = new Date();
t.setDate(t.getDate() + days);
}
value = String(value);
return (document.cookie = [
encodeURIComponent(key), '=',
options.raw ? value : encodeURIComponent(value),
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
options.path ? '; path=' + options.path : '',
options.domain ? '; domain=' + options.domain : '',
options.secure ? '; secure' : ''
].join(''));
}
// key and possibly options given, get cookie...
options = value || {};
var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent;
return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null;
};
// --------- END COOKIE PLUGIN ---------
$(document).ready(function(){
var check = $.cookie('my_cookie'); // gibts den cookie schon?
var check2 = $.cookie('my_cookie2');
var check3 = $.cookie('my_cookie3');
if( check ) { // wenns den gibt
// setz die option mit dem cookie value auf selected
$('#dropdown option[value='+check+']').attr('selected','selected');
$('#dropdown2 option[value='+check2+']').attr('selected','selected');
$('#dropdown3 option[value='+check3+']').attr('selected','selected');
}
var current = '';
var changedSelect = '';
var removeThis = '';
var newCookie = '';
$('select').change(function(){ //wenn dropdown geändert wird
//welches dropdown wurde geändert?
changedSelect = $(this).attr('id');
//welcher cookie muss dann weg?
switch(changedSelect) {
case 'dropdown':
removeThis = "my_cookie";
cookieNum = '';
break;
case 'dropdown2':
removeThis = "my_cookie2";
cookieNum = '2';
break;
case 'dropdown3':
removeThis = "my_cookie3";
cookieNum = '3';
break;
}
// alten cookie weg
$.cookie(removeThis, '', {expires: -1});
newCookie = removeThis;
// value aus changed select in var current schreiben
current = $('#dropdown'+cookieNum+' option:selected').attr('value'); // hier holen wir uns den gewählten value
// cookie setzen, ist 30 Tage gültig
$.cookie( newCookie, current, {expires: 30} );
});
});
</script>
</head>
<body>
<div id="main">
<select name="dropdown" id="dropdown">
<option value="value1">Value1</option>
<option value="value2">Value2</option>
<option value="value3">Value3</option>
<option value="value4">Value4</option>
<option value="value5">Value5</option>
</select>
<select name="dropdown2" id="dropdown2">
<option value="value1">dropdown2-Value1</option>
<option value="value2">dropdown2-Value2</option>
<option value="value3">dropdown2-Value3</option>
<option value="value4">dropdown2-Value4</option>
<option value="value5">dropdown2-Value5</option>
</select>
<select name="dropdown3" id="dropdown3">
<option value="value1">dropdown3-Value1</option>
<option value="value2">dropdown3-Value2</option>
<option value="value3">dropdown3-Value3</option>
<option value="value4">dropdown3-Value4</option>
<option value="value5">dropdown3-Value5</option>
</select>
</div>
</body>
</html>