【发布时间】:2011-06-11 05:56:11
【问题描述】:
在我的用户消息系统的用户收件箱中,我正在构建一个功能,用户可以在其中将电子邮件消息设为最喜欢的消息。
我在消息模型中创建了 2 个方法。一个更新 'messages' 表中的 0,将 'favourite' 列更新为 1,这意味着用户希望该消息成为最喜欢的。用户单击以使消息成为收藏夹的图像也会从灰色变为彩色。
然后,如果用户想让消息不受欢迎,我会再次执行相同的过程。 1 更新为 0,图像再次变灰。
下面是我的 jquery/javascript,如果选中该框(图像为彩色),则它基本上会执行某些操作,如果未选中该框(图像变灰),则会执行其他操作。
// favourite check box
$('input.favourite:checkbox').simpleImageCheck({
image: '<?php echo base_url()?>images/messages/check.png',
imageChecked: '<?php echo base_url()?>images/messages/unchecked.png',
afterCheck: function(isChecked) {
if (isChecked) {
//query to db from php to update favourite number to 1
}
else (!isChecked)
{
//query to db from php to update favourite number to 0
}
}
});
我想弄清楚的是在我的模型中调用我的 2 db 查询的最佳方法:
public function favourite_checked($message_id)
{
$username = $this->session->userdata('username');
return $this->db->query("UPDATE messages SET favourite = 1 WHERE id = $message_id AND to_user = '$username'");
}
public function favourite_unchecked($message_id)
{
$username = $this->session->userdata('username');
return $this->db->query("UPDATE messages SET favourite = 0 WHERE id = $message_id AND to_user = '$username'");
}
最好的方法是什么?直接在视图中调用模型是不好的做法,不是吗?
那么我怎样才能实现我想要实现的目标呢?
控制器可以充当中间人吗?
如果是这样,我什至如何在 javascript 函数中调用控制器?
我一直很欣赏这里给出的建议。提前致谢
【问题讨论】:
标签: php jquery codeigniter database-abstraction