Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1621958
  • 博文数量: 1481
  • 博客积分: 26784
  • 博客等级: 上将
  • 技术积分: 17045
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-12 09:22
文章分类

全部博文(1481)

文章存档

2014年(10)

2013年(353)

2012年(700)

2011年(418)

分类: 系统运维

2012-09-21 09:30:01

亲们,好久不见了,军哥可想死你们了!最近都比较忙吧,军哥亦是如此哦,先忙于学习,不断让学习成为一种信仰,一种习惯;接着是忙于运动,生命在于生生不息嘛,军哥在这里表达的不是生命在于运动,否则成天运动的运动员都个个长寿了,而一动不动的乌龟就不会活很久了。其实生命真正的关键在于平衡,在于气血的流通,所以呐,军哥为了活络活络自己脆弱的不能再脆弱的筋骨,毅然而决然的加入到健身的的人群当中,通过近期的锻炼,效果还是很不错滴,精神面貌等有了很大的改良;还有就是于爱情,不得不感叹一声众里寻她千百度,那人却在灯火阑珊处,军哥单身了这么多年,这回连老天也看不下去了,终于让我寻觅到了一位冤家,改天介绍亲们认识哈,嘻嘻~~

完了,完了,居然跑题了~~ 我们还是言归正传吧。


对于初学者学习php,其实做留言板是一个最好的实践项目。同样,学习CI亦是如此,把做留言板的整个流程弄清楚了,也就能够更好的深入学习其他复杂的项目。别小看一个留言板额,麻雀虽小,五脏俱全。注册、登录、验证码、回复、分类还有数据库的增删查改操作都会涉及到的。不过这一回嘛,暂时还没有这么齐全,只是制作了一个简单的留言板,包括了留言及留言回复以及分页等(通过Ajax技术实现),军哥在后面的分享当中还会再写一个功能齐全的留言板。

代码示例 更多请访问军哥个人主页:

一、先给大家看一下效果图(有图有真相这话可不是盖的哟):
1、初始效果


2、留言验证效果

3、留言成功效果

4、点击回复留言效果

5、点击更多效果

二、模型(即Model)
留言表Model:
  1. class M_message extends CI_Model {
  2. //获取留言信息
  3. function get($num) {
  4. $data = '';
  5. $this->db->select('id,name,email,website,picture,content,posttime,show');
  6. $this->db->order_by('posttime','asc');
  7. $data = $this->db->get_where('message', array('show' => 1),$num);
  8. return $data;
  9. }
  10. // 插入留言信息
  11. function insert() {
  12. $data = array(
  13. 'posttime' => time(),
  14. 'name' => $this->input->post('name'),
  15. 'content' => $this->input->post('content'),
  16. );
  17. $this->db->insert('message', $data);
  18. return $this->db->insert_id();
  19. }
  20. // 统计留言数量
  21. function count() {
  22. $data = '';
  23. $this->db->where('show', 1);
  24. $data = $this->db->count_all_results('message');
  25. return $data;
  26. }
  27. }

回复表Model:
  1. class M_reply extends CI_Model {
  2. //获取某一条留言的回复信息
  3. function get($postId) {
  4. $data = '';
  5. $this->db->select('id,postId,content,name,replyTime,show');
  6. $this->db->order_by('replyTime','desc');
  7. $data = $this->db->get_where('reply', array('show' => 1,'postId'=> $postId));
  8. return $data;
  9. }
  10. // 插入留言信息
  11. function insert() {
  12. $data = array(
  13. 'postId' => $this->input->post('postId'),
  14. 'name' => $this->input->post('name'),
  15. 'content' => $this->input->post('content'),
  16. 'replyTime' => time(),
  17. );
  18. $this->db->insert('reply', $data);
  19. return $this->db->insert_id();
  20. }
  21. // 统计某一条留言的回复数量
  22. function count($postId) {
  23. $data = '';
  24. $this->db->where(array('show' => 1,'postId' => $postId));
  25. $data = $this->db->count_all_results('reply');
  26. return $data;
  27. }
  28. }

三、控制器(controllers
  1. class message extends CI_Controller {
  2. // 构造函数
  3. function __construct() {
  4. parent::__construct();
  5. //配置文件获取应用根目录
  6. $this->base_url = $this->config->item("base_url");
  7. //加载留言表Model
  8. $this->load->model('M_message');
  9. //加载回复表Model
  10. $this->load->model('M_reply');
  11. }
  12. //显示留言表页
  13. function index() {
  14. $data['base_url'] = $this->base_url;
  15. $data['yourName'] = "JayJun";
  16. $data['megnumRow'] = $this->M_message->count();
  17. $this->load->view("message_index",$data);
  18. }
  19. //执行添加留言或回复操作
  20. function insert($type) {
  21. switch($type) {
  22. //执行添加留言操作
  23. case "message":
  24. if ($this->M_message->insert() > 0)
  25. {
  26. echo "yes";
  27. }
  28. else
  29. {
  30. echo "no";
  31. }
  32. break;
  33. //执行添加回复操作
  34. case "reply":
  35. if ($this->M_reply->insert() > 0)
  36. {
  37. echo "yes";
  38. }
  39. else
  40. {
  41. echo "no";
  42. }
  43. break;
  44. }
  45. }
  46. //Ajax加载留言和回复信息
  47. function receive($num){
  48. //获取留言信息
  49. $query = $this->M_message->get($num);
  50. $data['megnumRow'] = $this->M_message->count();
  51. //获取回复信息
  52. if($query->num_rows() > 0)
  53. {
  54. foreach($query->result() as $row)
  55. {
  56. //取回复记录
  57. $query1 = $this->M_reply->get($row->id);
  58. if($query1->num_rows() > 0)
  59. {
  60. foreach($query1->result() as $row1)
  61. {
  62. $row->reply_row[] = $row1;
  63. }
  64. }
  65. $row->num = $this->M_reply->count($row->id);
  66. $data['meg_row'][] = $row;
  67. }
  68. }
  69. $data['base_url'] = $this->base_url;
  70. $this->load->view("message_receive",$data);
  71. }
  72. }

四、视图(views)
message_index.php:
  1. 在CI框架中,JQuery+Ajax实现一个简单的留言板例子
  2. 的留言板

  3. 写下你的留言:
  • ×
  • 提示

  • 亲,没有内容可显示了哦~

  • ?2011-2012 JayJun All Rights Reserved



  • message_receive.php:
    1. 留言()

    2. 0){ $count=1;?>
      • content; ?>
      • name; ?>
      • | 发表于posttime); ?>
      • [回复]
  • num > 0){ ?>
  • 显示更多
  • 还没有访客签写留言哦,您作为第一个访客留言吧!

  • 、应用
    (1)、先下载附件,解压之后,拷贝到网站根目录下;
    (2)、找到文件install.sql,建库建表;
    (3)、修改配置文件CI_message/application/config/database.php,只需设置$db['default']['password'] ='你的数据库密码'; ,大概第10
    (4)、直接在浏览器中输入即可访问。

    原文地址:

    阅读(600) | 评论(0) | 转发(0) |
    0

    上一篇:离散数学与计算机编程(一) 命题函数

    下一篇:在路上

    给主人留下些什么吧!~~