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

全部博文(1481)

文章存档

2014年(10)

2013年(353)

2012年(700)

2011年(418)

分类: 系统运维

2012-09-06 09:29:09

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


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


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

废话不说,还是老套路,直接上代码,欢迎拍砖赐教~~
1、首先看效果,有图有真相,天凉好个秋;
书籍列表页:

弹出框效果:


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

    ';

  24. $config['full_tag_close'] = '

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

3、模型源码在 application/models文件夹)
if (!defined('BASEPATH'))
  1. exit('No direct script access allowed');
  2. /**
  3. *书籍Model类
  4. * @author jayjun
  5. * @copyright 2012.09.03
  6. */
  7. class M_book extends CI_Model {
  8. //获取书籍信息
  9. function get($type,$num,$offset) {
  10. $data = '';
  11. switch ($type) {
  12. case 'back':
  13. $this->db->select('BookId,Tid,BookName,BookDesc,Price,MemberPrice,BookPic,Bstatus,Total,BuyNum,IsPush,IsHot,IsNew,AddTime,TagList');
  14. $data = $this->db->get('book', $num, $offset);
  15. break;
  16. }
  17. return $data;
  18. }
  19. // 获取书籍信息,$id
  20. function post($id) {
  21. return $query = $this->db->get_where('book', array('BookId' => $id));
  22. }
  23. // 统计书籍数量
  24. function count($type) {
  25. $data = '';
  26. switch ($type) {
  27. default:
  28. case 'back':
  29. $data = $this->db->count_all_results('book');
  30. break;
  31. }
  32. return $data;
  33. }
  34. }
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)、浏览器输入即可访问书籍列表显示页啦,点击书籍名称即可弹出书籍详情对话框。

    原文地址:

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

    上一篇:【捷哥浅谈PHP】第十九弹---NoSQL数据库Redis之游龙剑(hash类型)的修炼

    下一篇:共享自用的linux备份脚本(webdata+mysql)

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