В настоящее время я занимаюсь разработкой гибридного приложения CMS, и одним из элементов моей CMS является использование флажков при выборе вариантов использования. (Это происходит только в Chrome). Я нажимаю на несколько флажков, чтобы выбрать несколько вариантов использования, а затем, когда перехожу на другую страницу или даже фильтрую результат поиска, а после фильтрации результата поиска выбранные тики больше не отображаются. , Я хочу, чтобы данные кэшировались так, чтобы выбранные дела сохранялись на странице. Я кодирую всю CMS на PHP.
Это кусок кода, который относится к флажкам
// Выводим каждое событие (если не отфильтровано) и отслеживаем строки
$row_count = 0;
foreach( $this->usecases as $usecase ) {
if ( $this->apply_filters($usecase) ) {
$row_count += 1;
if ( $usecase["USECASE_ACTIVE"] ) {
$active_class = " class='event-active'";
$active_checkbox = <<<EOF
<span class="glyphicon glyphicon-play" aria-hidden="true"></span>
EOF;
} else {
$active_class = "";
$active_checkbox = sprintf( $checkbox_template, $usecase["USECASE_ID"] );
}
echo sprintf(
$row_template,
$active_class, $active_checkbox,
$usecase["USECASE_NAME"], $usecase["USECASE_CATEGORIES"], $usecase["USECASE_ID"]
);
}
}
Я большой поклонник. Попробуйте что-то вроде этого …
<?php
require 'vendor/autoload.php';
$cache = new \Doctrine\Common\Cache\ApcCache(); //use APC as the driver
$fruits = $cache->fetch('fruits'); //fetch the data from the cache
if($fruits == null){
$fruits = array('apple', 'orange', 'grapes', 'coconut', 'papaya');
$cache->save('fruits', $fruits); //save data into the cache
}
//do something with $fruits
?>
извините, просто онлайн. Не совсем понимаю ваши коды, но расширяю мои идеи, основываясь на моем понимании вашего вопроса. Пожалуйста, проверьте ниже пример для test.php
<?php
session_start();
if(isset($_POST['action'])&&$_POST['action']=='checkBox')
{
$_SESSION['number']=$_POST['checkedVal'];
exit;
}
?>
<form>
<fieldset>
<?php
$vals=['1','2','3'];
foreach($vals as $val)
{
$checked="";
if(isset($_SESSION['number'])&&in_array($val,$_SESSION['number']))
{
$checked="checked";
}
echo "<input type=\"checkbox\" name=\"number[]\" value=\"$val\" $checked />$val";
}
?>
</fieldset>
</form>
<a href="test.php">Go another page</a>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script>
$(function(){
$("input[name='number[]']").change(function() {
var checked=new Array();
$.each($("input[name='number[]']:checked"), function() {
checked.push($(this).val());
});
$.post("test.php", { action: "checkBox", checkedVal: checked } );
});
});
</script>