Kết quả 1 đến 6 của 6
  1. #1
    CI New kethatbai135's Avatar
    Ngày tham gia
    20-12-2013
    Bài viết
    3
    Cảm ơn
    0
    Được cảm ơn 0 trong 0 bài viết

    Post Giúp đỡ phân trang trong CI

    Chào các bạn ! mình có 1 câu hỏi rất mong mọi người giải đáp giúp.
    mình có một cấu trúc dữ liệu như sau :
    table : cate(cate_id,title), product(id,name,price,cate_id).
    bây giờ mình xây dựng menu bằng cách fix cứng menu cha.ví dụ là :
    <ul>
    <li>San Pham
    <ul>
    <?php $r=$this->m_cate->getcate();
    foreach($r as $r1)
    {
    <li><a href="<?php echo BH_URL?>home/cate/
    <?php echo $BH_CATE_ID ?>"><?php echo $r1[BH_CATE_TITLE] ?>
    </a></li>
    }
    ?>
    </ul>
    </li>
    </ul>
    bây giờ với menu dạng như trên(giả sử code phía trên của mình không sai). mỗi khi kích vào 1 menu con. mình sẽ lấy ID của menu đó làm $id cho hàm cate trong controller home ở phía trên để get sản phẩm có cate_id=$id đó. nghĩa là mình lấy bằng segment nhưng không lấy theo cách $this->uri->segment. mà mình sử dụng cách function cate($id).
    câu hỏi của mình là. khi mình lấy như vậy thì các sản phẩm có ra theo mong muốn. tuy nhiên bây giờ mình muốn phân trang cho các sản phẩm đó thì mình không biết phải làm sao ?. do segment đó thay đổi thì menu con đó cũng thay đổi.với cách sử dụng menu đệ quy thì mình có thể phân trang được bình thường. nhưng do yêu cầu em muốn làm theo cách như trên. vậy em mong các có thể chỉ cho mình cách nào đó để giải quyết cho trường hợp này. hoặc một hướng giải quyết cho bài toán của mình ?. mình rất cảm ơn mọi người !

  2. #2
    CI Member PhanNguyenChuong's Avatar
    Ngày tham gia
    15-07-2013
    Bài viết
    134
    Cảm ơn
    124
    Được cảm ơn 36 trong 32 bài viết
    Chào bạn, mình xin trả lời câu hỏi của bạn như sau:
    1/ Thứ nhất, bạn hỏi việc lấy tham số cho function cate($id) của controller home khi click vào menu có href là example.com/home/cate/$cate_id thay cho cách dùng $this->uri->segment thì việc nhận được biến $cate_id hoàn toàn được, cách truyền tham số như vậy là đúng kiểu CI. Từ đó bạn có thể lấy được dữ liệu với $cate_id đã có một cách dễ dàng.
    2/ Sau khi bạn lấy được dữ liệu bạn tìm hiểu phân trang ở đây http://huongdan.codeigniter.vn/libra...agination.html . Với đề bạn đưa ra thì bạn khai báo các thông số config cho Pagination như sau:
    PHP Code:
    $config['base_url'] = 'http://example.com/index.php/home/cate/$cate_id'// http://example.com bạn đổi lại cho đúng với host của bạn.
    $config['total_rows'] = Đếm_số_record_của_cate_id
    $config['per_page'] = 10// mỗi trang 10 record
    $config['uri_segment'] = 4// tham số phân trang là segment thứ 4, segment này CI sẽ thêm vào khi phân trang.(home/cate/$cate_id tương đương segment thứ 1/2/3)
    $this->load->library('pagination'$config); // Load thư viện Pagination và khai báo thông số config
    echo $this->pagination->create_links(); // echo ra xem nó phân trang như thế nào 
    Sửa lần cuối bởi PhanNguyenChuong; 20-12-2013 lúc 11:23 PM.

  3. #3
    CI New kethatbai135's Avatar
    Ngày tham gia
    20-12-2013
    Bài viết
    3
    Cảm ơn
    0
    Được cảm ơn 0 trong 0 bài viết
    Trích dẫn Gửi bởi PhanNguyenChuong Xem bài viết
    Chào bạn, mình xin trả lời câu hỏi của bạn như sau:
    1/ Thứ nhất, bạn hỏi việc lấy tham số cho function cate($id) của controller home khi click vào menu có href là example.com/home/cate/$cate_id thay cho cách dùng $this->uri->segment thì việc nhận được biến $cate_id hoàn toàn được, cách truyền tham số như vậy là đúng kiểu CI. Từ đó bạn có thể lấy được dữ liệu với $cate_id đã có một cách dễ dàng.
    2/ Sau khi bạn lấy được dữ liệu bạn tìm hiểu phân trang ở đây http://huongdan.codeigniter.vn/libra...agination.html . Với đề bạn đưa ra thì bạn khai báo các thông số config cho Pagination như sau:
    PHP Code:
    $config['base_url'] = 'http://example.com/index.php/home/cate/$cate_id'// http://example.com bạn đổi lại cho đúng với host của bạn.
    $config['total_rows'] = Đếm_số_record_của_cate_id
    $config['per_page'] = 10// mỗi trang 10 record
    $config['uri_segment'] = 4// tham số phân trang là segment thứ 4, segment này CI sẽ thêm vào khi phân trang.(home/cate/$cate_id tương đương segment thứ 1/2/3)
    $this->load->library('pagination'$config); // Load thư viện Pagination và khai báo thông số config
    echo $this->pagination->create_links(); // echo ra xem nó phân trang như thế nào 
    rất cảm ơn bạn đã trả lời cho mình.nhưng mong bạn có thể chỉ rõ cho mình chỗ này được không. về phân trang thì mình cũng đã test ok rùi. nhưng như đã trình bày phía trên thì mình có một thắc mắc nhỏ đó là. vời đường dẫn http://example.com/index.php/home/cate/$cate_id . với đường dẫn này thì $config['uri_segment'] = 4. biến này của phân trang sẽ lấy được cate_id tức là id của danh mục sản phẩm đó và show được sản phẩm đó. nhưng ý mình là, với những sản phẩm đó khi mình phân trang và mình ấn vào trang khác thì biến đó sẽ biến đổi. giả sử với phân trang 10 sp thì biến đó ở trang 2 sẽ là 10, vậy nếu function cate của mình lấy theo cách function cate($id) thì sẽ lấy phải số 10 đó. mình muốn hỏi là có cách nào để mình phân trang mà cái cate_id đó không ảnh hưởng không ?. hoặc bạn có thể chỉ cho mình 1 hướng nào đó để giải quyết bài toán này không ?. mình là 1 người mới tìm hiểu CI vì vậy chưa hiểu nhiều, rất mong được mọi người giúp đỡ. xin chân thành cảm ơn !

  4. #4
    Super Moderator Zen Studio's Avatar
    Ngày tham gia
    19-06-2013
    Bài viết
    393
    Cảm ơn
    58
    Được cảm ơn 166 trong 123 bài viết
    $cateid của bạn chẳng liên quan gì đến phân trang cả, cateid là cateid và per_page nó khác nhau mà bạn, khi bạn chạy quạ trang 2 thì nó sẽ kèm theo cả cateid và per page bạn nhé

    bạn nhìn link này sẽ hiểu rõ hơn nhé
    Sửa lần cuối bởi Zen Studio; 23-12-2013 lúc 11:03 AM.
    hay cung chung toi chinh phuc tri thuc

  5. #5
    CI New kethatbai135's Avatar
    Ngày tham gia
    20-12-2013
    Bài viết
    3
    Cảm ơn
    0
    Được cảm ơn 0 trong 0 bài viết
    bạn nhìn link này sẽ hiểu rõ hơn nhé[/QUOTE]
    Trích dẫn Gửi bởi Zen Studio Xem bài viết
    $cateid của bạn chẳng liên quan gì đến phân trang cả, cateid là cateid và per_page nó khác nhau mà bạn, khi bạn chạy quạ trang 2 thì nó sẽ kèm theo cả cateid và per page bạn nhé

    bạn nhìn link này sẽ hiểu rõ hơn nhé
    bạn ơi. với link này nhé http://caychumngay.org.vn/productsho...eu-6815/3.html
    thì mình hiểu là xuat-khau-duoc-lieu-6815 là cate_id. còn 3 là start của phân trang, không biết có đúng không ?. nếu đúng thì cho mình hỏi là vậy function productshows() trong CI mình phải truyển biến ntn. mình chỉ biết truyển là function productshows($id), trong đó id là biến sau function đó từ đó mình lấy được tên danh mục tương ứng.nếu muốn lấy số 3 kia thì phải làm sao. nếu dùng $this->uri->segment(4); thì lúc đầu chưa có mình để ntn. rất mong bạn giải đáp giùm. cảm ơn bạn rất nhiều.

  6. #6
    CI Member PhanNguyenChuong's Avatar
    Ngày tham gia
    15-07-2013
    Bài viết
    134
    Cảm ơn
    124
    Được cảm ơn 36 trong 32 bài viết
    Bạn có YH ko, add mình: phngchuong

Chia sẽ và Bình Luận chủ đề Giúp đỡ phân trang trong CI trên facebook

Các Chủ đề tương tự

  1. Phân trang trong CodeIgniter
    Bởi tinhphaistc trong diễn đàn Turtorial
    Trả lời: 23
    Bài cuối: 09-03-2017, 02:01 PM
  2. phân trang trong codeigniter
    Bởi tr_victory trong diễn đàn Cho thành viên mới bắt đầu
    Trả lời: 4
    Bài cuối: 24-03-2014, 11:00 AM
  3. [Hỏi]Chuyển trang trong CI mà không load lại trang?
    Bởi hacker27 trong diễn đàn Hỏi đáp
    Trả lời: 15
    Bài cuối: 18-03-2014, 09:22 AM
  4. Cách include trang trong CI
    Bởi ginsky92 trong diễn đàn Hỏi đáp
    Trả lời: 1
    Bài cuối: 17-02-2014, 04:16 PM
  5. [Hỏi] Phân trang trong codeigniter với twitter bootstrap
    Bởi tuanphuongmda trong diễn đàn Hỏi đáp
    Trả lời: 2
    Bài cuối: 13-05-2013, 05:45 PM

Các từ khóa xuất hiện trên google của chủ đề

hướng dan lấy uri-&gt;segment()

Tag của Chủ đề này - Hãy Thêm Tags Để bài viết nhanh lên top google

Quyền viết bài

  • Bạn không thể đăng chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi đính kèm
  • Bạn không thể sửa bài
  •