0

嗨,我有年存储的数据,像这样序列化

a:2:{i:0;s:4:"2011";i:1;s:4:"2013";}
并有一个这样的预定义年份列表:
$current_year = date('Y'); 
for($year = 2011; $year < $current_year; $year++)
{
$year;
}

所以,我想填充如下复选框列表:
[x] 2011
[] 2012
[x] 2013
...

如果年份不在预定义年份(在本例中为 2011、2012 和 2013),则应取消选中该年份。

我已经搜索过,但到目前为止,最近的解决方案不在 PHP 中

4

2 回答 2

3
$years = unserialize($mysql_years);
$current_year = date('Y');
for ($year = 2011; $year < $current_year; $year++) {
    $checked = '';
    if (in_array($year, $years)) {
        $checked = ' checked';
    }
    echo "<input type=checkbox value=$year$checked>";
}
于 2013-04-02T04:34:00.917 回答
1

我找到了解决方案。检查这个。

<?php 
 $dat='a:2:{i:0;s:4:"2011";i:1;s:4:"2013";}';
 $data=unserialize($dat); 
 $current_year = date('Y');
for($year = 2011; $year <= $current_year; $year++) 
{
    if(in_array($year,$data))   {       $checked="CHECKED";     }   else { $checked=""; } ?>
    <input type="checkbox" value="<?php echo $year; ?>" name="year[]"  <?php echo $checked; ?> > <?php echo $year; ?> <br/>
<?php } ?>
于 2013-04-02T04:41:02.740 回答