我目前正在开发一个混合应用程序CMS,我的CMS中的一个元素是在选择用例时使用复选框。(这只发生在铬中)我单击几个复选框以选择一堆用例,然后当我转到另一个页面甚至过滤搜索结果并取消过滤搜索结果时,我选择的勾号不再存在。我希望缓存数据,以便我选择的案例保留在页面上。我正在用PHP编写整个CMS。
这是一段与复选框相关的代码
输出每个事件(除非过滤)并跟踪行
$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
?>
抱歉,只是在线。没有真正理解你的代码,但根据我对你的问题的理解来扩展我的想法。请查看下面的示例进行测试.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>