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

全部博文(1481)

文章存档

2014年(10)

2013年(353)

2012年(700)

2011年(418)

分类: 系统运维

2012-09-07 09:24:56

Hi,早上好,我是军哥,新的一天又开始啦,首先祝大家呢这一天的工作和学习顺顺利利,开开心心~~
军哥今天想分享一下CI框架中有关Ajax的一个简单应用(详见代码示例代码示例 ),相信有许多的初学者对CI中怎样使用Ajax会比较纠结和迷茫,但又非常让你有兴趣,毕竟通过Ajax,你可以创建更好、更快以及更友好的WEB应用程序,谁不想自己写的程序足够友好呢,嘿嘿,更何况这是一个以用户为王的时代!


CI中有为我们提供封装好的Ajax类库,个人建议是尽量不使用,因为使用CI封装好的,你就得遵循它要求的格式去写,这样就更让初学者更加糊涂。

接下来就具体来讲这个AJAX简单应用——书籍列表页中当点击书籍名称时实现Ajax请求弹出书籍详情对话框的无刷新效果。还是跟上次一样,军哥还是在代码中继续使用bootstarp前端UI框架来实现页面效果。另外还用到了峰哥的独家秘笈——Ajax3.0。

废话不说,还是老套路,直接上代码,欢迎拍砖赐教~~

1、首先看效果,有图有真相,天凉好个秋;
书籍列表页:
弹出框效果:

2、控制器(源码在 application/controllers/manage文件夹)
  1. if (!defined('BASEPATH'))
  2. exit('No direct script access allowed');
  3. /**
  4. *书籍管理控制器,只实现书籍列表显示功能
  5. * @author jayjun
  6. * @copyright 2012.09.03
  7. */
  8. class book extends CI_Controller {
  9. // 初始化
  10. function __construct() {
  11. parent::__construct();
  12. $this->base_url = $this->config->item("base_url");
  13. $this->load->model('M_book');
  14. }
  15. //书籍列表页
  16. function index($num = '') {
  17. // 加载分页类
  18. $this->load->library('pagination');
  19. $config['base_url'] = $this->base_url.'/index.php/manage/book/index/';
  20. $config['total_rows'] = $this->M_book->count('back');
  21. $config['per_page'] = 2;
  22. $config['num_links'] = 3;
  23. $config['uri_segment'] = 4;
  24. $config['full_tag_open'] = '

    ';

  25. $config['full_tag_close'] = '

    ';
  26. $config['first_link'] = '首页';
  27. $config['last_link'] = '末页';
  28. $config['next_link'] = '下一页 >';
  29. $config['prev_link'] = '< 上一页';
  30. $config['cur_tag_open'] = ' ';
  31. $config['cur_tag_close'] = '';
  32. $this->pagination->initialize($config);
  33. $data['list'] = $this->M_book->get('back', $config['per_page'], $num);
  34. $data['page'] = array(
  35. 'total' => $config['total_rows'],
  36. 'num' => $config['per_page'],
  37. 'page' => (int) (($config['total_rows'] % $config['per_page'] === 0) ? ($config['total_rows'] / $config['per_page']) : ($config['total_rows'] / $config['per_page'] + 1)),
  38. 'c_num' => $num
  39. );
  40. $data['base_url'] = $this->base_url;
  41. $this->load->view("manage/book_index",$data);
  42. }
  43. //获取书籍详情
  44. function post() {
  45. $data['base_url'] = $this->base_url;
  46. $id = $this->input->post('id');
  47. $query = $this->M_book->post($id);
  48. $data['post'] = $query->row_array();
  49. $this->load->view('manage/book_info', $data);
  50. }
  51. }

3、模型源码在 application/models文件夹)
  1. if (!defined('BASEPATH'))
  2. exit('No direct script access allowed');
  3. /**
  4. *书籍Model类
  5. * @author jayjun
  6. * @copyright 2012.09.03
  7. */
  8. class M_book extends CI_Model {
  9. //获取书籍信息
  10. function get($type,$num,$offset) {
  11. $data = '';
  12. switch ($type) {
  13. case 'back':
  14. $this->db->select('BookId,Tid,BookName,BookDesc,Price,MemberPrice,BookPic,Bstatus,Total,BuyNum,IsPush,IsHot,IsNew,AddTime,TagList');
  15. $data = $this->db->get('book', $num, $offset);
  16. break;
  17. }
  18. return $data;
  19. }
  20. // 获取书籍信息,$id
  21. function post($id) {
  22. return $query = $this->db->get_where('book', array('BookId' => $id));
  23. }
  24. // 统计书籍数量
  25. function count($type) {
  26. $data = '';
  27. switch ($type) {
  28. default:
  29. case 'back':
  30. $data = $this->db->count_all_results('book');
  31. break;
  32. }
  33. return $data;
  34. }
  35. }
4、视图源码在 application/views/manage文件夹)
书籍列表视图(book_index.php):
  1. 书籍列表
  2. 书籍列表

  3. 每页 条 / 当前 ~ num_rows; ?> 条 / 计 页 / 共

  • pagination->create_links(); ?>
  • if ($list->num_rows === 0)
  • {
  • echo '
  • ';
  • }
  • else
  • {
  • foreach ($list->result() as $item):
  • ?>
  • endforeach;
  • }
  • ?>
  • 编号 书籍名 书籍封面 市场价 会员价 库存 销量 添加时间 状态 操作
    暂无书籍
  • BookName; ?>
  • Price;?> MemberPrice;?> Total;?> BuyNum;?> AddTime); ?> Bstatus === '0') ? '待审' : '正常'; ?>
  • 加载的弹出框视图(book_info.php):
    1. ×
    2. 》详细参数

  • 书籍名称:
    市场价:
    会员价:
    库存量:
    是否推荐:
    是否热门:
    是否最新:
    书籍描述:
  • 关闭
  • 5、应用
    (1)、先下载附件,解压之后,拷贝至网站根目录下;
    (2)、找到文件ci_ajax.sql,建库建表;
    (3)、修改配置文件CI_cate/application/config/database.php,只需设置$db['default']['password'] ='你的数据库密码'; ,大概在第10行
    (4)、浏览器输入即可访问书籍列表显示页啦,点击书籍名称即可弹出书籍详情对话框。

    代码示例

    原文地址:

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

    上一篇:阚总工作第二天,写于清晨

    下一篇:项目结束有感

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