最初に[送信]をクリックしてページを再読み込みした後、ページが更新または再読み込みされるまで、設定された各Cookieの古い値がページに表示されるという問題があります。
これが基本的に私がそれを設定する方法です。
index.php
<?php
if(isset($_POST['filter'])){
foreach($_POST['filter'] as $key=>$value){
$xNums[] = $key;
}
$vals = $_POST['filter'];
updateFilter($vals, $xNums);
}
?>
<form action='index.php' method='post'>
<input type='radio' name=filter['".$xNum."'] value='yes' />Show<input type='radio' name=filter['".$SomeVariable."'] value='no' />Hide
<input type=submit value=" Submit " />
<?php
echo displayStatus($xNum);
?>
関数.php
function updateFilter($vals, $xNums){
foreach($xNums as $xNum){
$val = $vals[$xNum];
setcookie($xNum, $val, time()+3600);
}
return;
}
function displayStatus($xNum){
if($_COOKIE["'".$xNum."'"]=='no'){
return "no";
} else {
return "yes";
}
}