复选框从数据库设置的值


Checkbox set value from DB

所以情况是这样的:我目前有一个DB与电视节目与RSS源。提要(电视节目)表有ID、名称、网络、提要、活动。我在帐户表中设置了一个名为favorites的字段,我认为逗号分隔的电视节目ID可能是一个好主意,但我不确定了。

我目前正在寻求实现CI中的控制器,将查看最喜欢的字段中的DB,例如,如果它被填满了104,149,150

我怎样才能把这些ID转移到视图中,这样我就可以把值设置为各自的Show ?

    <?php foreach ($shows as $show) { ?>
             <div class="grid_1">
              <?  $data = array(
    'name'        => $show['name'],
    'id'          => $show['id'],
    'value'       => $show['name'],
    'checked'     => FALSE,
    );
echo form_checkbox($data); ?>
            </div>
            <div class="item"><?=form_label($show['name']);?></div>
                       <?php } ?>

视图当前在数据库中输出电视节目,每个节目旁边都有一个复选框,我设置用户偏好的最佳方式是什么?这样我就可以根据用户偏好

设置每个复选框的值

我希望我已经解释了我正在努力做好的事情,

谢谢!

你可以加载一个视图并向它发送变量/参数:

$params['data'] = array(1 => 'hello');
$this->load->view('path/view.php', $params);
编辑:

为了保存收藏夹,我建议创建一个新表('favorites'),其中包含favorite_id, user_id, show_id ..也许加个日期,也许加些别的东西。

在复选框所在的显示页面中,您可以执行以下操作:

<input type="checkbox" <?=(in_array(SHOW_ID, $favorites) ? 'checked' : null);?> />

这意味着你必须发送一个名为$favorites的数组,它在你的控制器中看起来像$params['favorites']

获取收藏夹的查询看起来像这样:

$q = $this->db->query('SELECT show_id FROM favorites WHERE user_id=?', array($user_id));
$params['favorites'] = $q->result_array();

查询后面的array($user_id)称为查询绑定,用于安全。

Mike是对的,这里有一个使用CI的例子:)

滴答的