所以场景是这样的: 我目前有一个带有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 } ?>
视图当前在数据库中输出电视节目,每个节目旁边都有一个复选框,为我设置收藏夹的用户偏好的最佳方式是什么?这样我就可以根据用户偏好设置每个复选框的值
我希望我已经解释了我想做的事情,
谢谢!
答案 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的例子:)