「red%2green」は「red%20green」ですよね?
こんな感じでどうでしょう?
(js側でセットする処理を書いてあります)
php
1<?PHP
2$cookie=filter_var_array($_COOKIE,["check_color"=>FILTER_DEFAULT]);
3print_r($cookie);
4$checked=[
5 "red"=>preg_match("/(^| )red(?= |$)/",$cookie["check_color"])?" checked":"",
6 "green"=>preg_match("/(^| )green(?= |$)/",$cookie["check_color"])?" checked":"",
7];
8?>
9<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
10<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
11<script>
12$(function(){
13 //$.removeCookie('check_color');
14 console.log(document.cookie);
15 $('#btn1').on('click',function(){
16 location.href=location.href;
17 });
18 $('#btn2').on('click',function(){
19 setcolor('red');
20 });
21 $('#btn3').on('click',function(){
22 delcolor('red');
23 });
24 $('#btn4').on('click',function(){
25 setcolor('green');
26 });
27 $('#btn5').on('click',function(){
28 delcolor('green');
29 });
30});
31function setcolor(c){
32 var color=$.cookie('check_color')||'';
33 var reg=new RegExp("(^| )"+c+"(?= |$)");
34 if(!color.match(reg)){
35 if(color!=='') color+=' ';
36 color+=c;
37 $.cookie('check_color',color);
38 }
39}
40function delcolor(c){
41 var color=$.cookie('check_color')||'';
42 var reg=new RegExp("(^| )"+c+"(?= |$)");
43 color=color.replace(reg,'');
44 color=color.replace(/^ | $/,'');
45 if(color==""){
46 $.removeCookie('check_color');
47 }else{
48 $.cookie('check_color',color);
49 }
50}
51</script>
52<div class="labels">
53 <label id="check_red">
54 <input name="check_red" type="checkbox" value="red"<?=$checked["red"];?>>
55 <span>red</span>
56 </label>
57 <label id="check_green">
58 <input name="check_red" type="checkbox" value="green"<?=$checked["green"];?>>
59 <span>green</span>
60 </label>
61</div>
62
63<input type="button" id="btn1" value="reload">
64<input type="button" id="btn2"value="set red">
65<input type="button" id="btn3" value="del red">
66<input type="button" id="btn4" value="set green">
67<input type="button" id="btn5" value="del green">
68
調整
PHP
1<?PHP
2$cookie=filter_var_array($_COOKIE,["check_color"=>FILTER_DEFAULT]);
3$checked=["red"=>"","green"=>""];
4$val=["red"=>"","green"=>""];
5print_r($cookie);
6if(preg_match("/(^| )red(?= |$)/",$cookie["check_color"])){
7 $checked["red"]=" checked";
8 $val["red"]="red";
9};
10if(preg_match("/(^| )green(?= |$)/",$cookie["check_color"])){
11 $checked["green"]=" checked";
12 $val["green"]="green";
13};
14
15?>
16<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
17<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
18<script>
19$(function(){
20 //$.removeCookie('check_color');
21 console.log(document.cookie);
22 $('#btn1').on('click',function(){
23 location.href=location.href;
24 });
25 $('#btn2').on('click',function(){
26 setcolor('red');
27 });
28 $('#btn3').on('click',function(){
29 delcolor('red');
30 });
31 $('#btn4').on('click',function(){
32 setcolor('green');
33 });
34 $('#btn5').on('click',function(){
35 delcolor('green');
36 });
37});
38function setcolor(c){
39 var color=$.cookie('check_color')||'';
40 var reg=new RegExp("(^| )"+c+"(?= |$)");
41 if(!color.match(reg)){
42 if(color!=='') color+=' ';
43 color+=c;
44 $.cookie('check_color',color);
45 }
46}
47function delcolor(c){
48 var color=$.cookie('check_color')||'';
49 var reg=new RegExp("(^| )"+c+"(?= |$)");
50 color=color.replace(reg,'');
51 color=color.replace(/^ | $/,'');
52 if(color==""){
53 $.removeCookie('check_color');
54 }else{
55 $.cookie('check_color',color);
56 }
57}
58</script>
59<div class="labels">
60 <label id="check_red">
61 <input name="check_red" type="checkbox" value="<?=$val["red"];?>"<?=$checked["red"];?>>
62 <span>red</span>
63 </label>
64 <label id="check_green">
65 <input name="check_red" type="checkbox" value="<?=$val["green"];?>"<?=$checked["green"];?>>
66 <span>green</span>
67 </label>
68</div>
69
70<input type="button" id="btn1" value="reload">
71<input type="button" id="btn2"value="set red">
72<input type="button" id="btn3" value="del red">
73<input type="button" id="btn4" value="set green">
74<input type="button" id="btn5" value="del green">
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/08 09:21 編集
2019/01/08 09:27
2019/01/08 09:32 編集
2019/01/08 09:37
2019/01/08 09:45