来自DB的复选框设置值

时间:2011-11-23 01:24:56

标签: php codeigniter

所以场景是这样的: 我目前有一个带有RSS Feed的电视节目的数据库。 提要(电视节目)表具有ID,名称,网络,馈送,活动。 我在帐户表中设置了一个名为收藏夹的字段,我认为电视节目的逗号分隔ID可能是一个好主意,但我不确定了。

我目前正在寻求在CI中实现一个控制器,它将在收藏夹字段中查看数据库,例如,如果它填充了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 } ?>

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

我希望我已经解释了我想做的事情,

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以加载视图并将变量/参数发送给它:

$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)称为查询绑定,用于安全性。

答案 1 :(得分:1)

迈克是对的,这是一个使用CI的例子:)

Clicky