• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
I wanted to create a pagination

#1
Exclamation 
This is a functional search using a button click but the problem is there is no pagination on it. I wanted to insert a pagination link, I read tutorials about the CodeIgniter pagination but it only takes 1 table. The examples are a group of joints tables. below are the selected code any help/suggestions will do. I'm using CodeIgniter v2. btw, the only functional button is case 5.


This is my model:

PHP Code:
public function get_schedule($to_date$student_id false$from_date false) {
 
       $this->db->select(
 
               'schedule_class.target_date,'
 
               'schedule_class.id,'
 
               'schedule_class.student_id,'
 
               'schedule_class.test_flg,'
 
               'schedule_class.schedule_bus_id,'
 
               'm_class.base_class_sign'
 
       );
 
       $this->db->from('schedule_class');
 
       $this->db->join('m_class''schedule_class.student_class_id = m_class.id''left');
 
       if ($student_id) {
 
           $this->db->where('schedule_class.student_id'$student_id);
 
       }
 
       if ($from_date) {
 
           $this->db->where('schedule_class.target_date >='$from_date);
 
       } else {
 
           $this->db->where('schedule_class.target_date >='$this->today);
 
       }
 
       if ($to_date) {
 
           $this->db->where('target_date <='$to_date);
 
       }
 
       $this->db->where('schedule_class.presence_flg'DATA_OFF); 
 
       $this->db->where('schedule_class.absence_flg'DATA_OFF);  
        $this
->db->where('schedule_class.transfer_flg'DATA_OFF); 
 
       $this->db->where('schedule_class.special_transfer_flg'DATA_OFF); 
 
       $this->db->order_by('schedule_class.target_date'"DESC");
 
       $res $this->db->get()->result_array();
 
       return $res;
 
   
My controller:

PHP Code:
function __construct() {
 
       parent::__construct();
 
       $this->load->model('db/l_student_reserve_change_model''student_reserve');
 
       $this->load->model('db/m_course_model''course');
 
       $this->load->model('db/m_class_model''class');
 
       $this->load->model('db/m_grade_model''grade');
 
       $this->load->model('db/reschedule_model''reschedule');
 
       $this->load->library("pagination");
 
   }

 
  
    public 
function index() {
 
       try {
 
               $data $this->make_data();
 
               $data['today'] = date("Ymd");
 
               admin_layout_view('attend_index'$data);
 
       } catch (Exception $e) {
 
           $this->_show_error($e->getMessage(), $e->getTraceAsString());
 
       }
 
   }
 
   
   
    public 
function make_data() {
 
       try {
 
          
            $data
['course_list'] = $this->course->get_list();
 
           
            $data
['class_alphabet'] = array("M""A""B""C""D""E""F");
 
          
            $data
['grade_info'] = $this->base->get_grade();
 
           
            $this
->today date('Y-m-d 00-00-00');
 
           $start $this->input->post('start_date') ? $this->input->post('start_date') : $this->today;
 
           
            $end 
$this->input->post('end_date') ? $this->input->post('end_date') : $this->today;
 
          
            $data
['btn_kind'] = $this->input->post('sub_btn');
 
           $list = [];
 
           switch ($data['btn_kind']) {
 
               case 1:
 
                   
                    $list 
$this->reschedule->get_past_rest_list($start$end$student_id false);
 
                   break;
 
               case 2:
 
                   
                    $list 
$this->reschedule->get_no_contact_absence_list($student_id false$start$end);
 
                   break;
 
               case 3:
 
                   
                    $list 
$this->reschedule->get_past_attend_list($start$student_id false);
 
                   break;
 
               case 4:
 
                  
                    $list 
$this->reschedule->get_past_attend_transfer_list($start$student_id false);
 
                   break;
 
               case 5:
 
                  
                    $list 
$this->reschedule->get_schedule_list($end$student_id falsefalse);
 
                   break;
 
               case 6:
 
                   
                    $list 
$this->reschedule->get_tranfer_list($end$student_id false$start);
 
                   break;
 
               case 7:
 
                   
                    $list 
$this->reschedule->get_rest_list($start$end$student_id false);
 
                   break;
 
           }

 
           $data["list"] = [];
 
           foreach ($list as &$schedule_class) {
 
               $student $this->base->get_student_now_info($schedule_class["student_id"]);
 
               
                if 
($this->input->post('freeword')) {
 
                   if (
 
                           strpos($student["id"], $this->input->post('freeword')) === false &&
 
                           strpos($student["name"], $this->input->post('freeword')) === false &&
 
                           strpos($student["name_kana"], $this->input->post('freeword')) === false
                    
) {
 
                       continue;
 
                   }
 
               }

 
               $schedule_class array_merge($schedule_class$student);
 
               
                if 
($this->input->post('course')) {
 
                   if (!in_array($student["course"]["id"], $this->input->post('course'))) {
 
                       continue;
 
                   }
 
               }
 
              
                if 
($this->input->post('class')) {
 
                   $base_class_signs = [];
 
                   $match false;
 
                   foreach ($schedule_class["class"] as $class) {
 
                       if (in_array($class["base_class_sign"], $this->input->post('class'))) {
 
                           $match true;
 
                       }
 
                   }
 
                   if (!$match) {
 
                       continue;
 
                   }
 
               }
 
              
                if 
($this->input->post('grade')) {
 
                   if (!in_array($student["grade_id"], $this->input->post('grade'))) {
 
                       continue;
 
                   }
 
               }
 
               $data["list"][] = $schedule_class;
 
           }

 
           
            if 
($data['btn_kind'] == || $data['btn_kind'] == 6) {
 
              
                foreach 
($data["list"] as &$r) {
 
                   
                    $r
["source"] = $this->db->select('*')
 
                           ->from('schedule_class')
 
                           ->where('id'$r["source_schedule_class_id"])
 
                           ->get()
 
                           ->row_array();
 
                   $r["source_class"] = $this->reschedule->get_class_info($r["source_schedule_class_id"]);
 
                   
                    $r
["transfer_class"] = $this->db->select()
 
                           ->from('m_class')
 
                           ->where('id'$r['student_class_id'])
 
                           ->get()
 
                           ->row_array();
 
                  
                    $r
["bus"] = $this->base->get_student_bus($r["student_id"]);
 
               }
 
           }
 
           $data["today_date"] = date("Ymd");
 
           return $data;
 
       } catch (Exception $e) {
 
           $this->_show_error($e->getMessage(), $e->getTraceAsString());
 
       }
 
       
javasript:

Code:
$("button[type='submit']").on('click', function(){
       $("form[name='data_extraction']").attr('action','/admin/attend');
       $("input[type='hidden']").attr('name','csv_type');
       $("form[name='data_extraction']").submit();
   });
Reply

#2
Example for bootstrap
Controller
PHP Code:
$config['page_query_string'] = TRUE;
$config['reuse_query_string'] = TRUE;
$config['use_page_numbers'] = TRUE;
$config['query_string_segment'] = 'page'

$config['total_rows'] = $total_rows
$config['per_page'] = $limit

$config['full_tag_open'] = '<div class="pagging text-center"><nav><ul class="pagination">';
$config['full_tag_close'] = '</ul></nav></div>';
$config['num_tag_open'] = '<li class="page-item">';
$config['num_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li class="page-item active"><a class="page-link" href="javascript:;">';
$config['cur_tag_close'] = '</a></li>';
$config['next_tag_open'] = '<li class="page-item">';
$config['next_tagl_close'] = '</li>';
$config['prev_tag_open'] = '<li class="page-item">';
$config['prev_tagl_close'] = '</li>';
$config['first_tag_open'] = '<li class="page-item">'
$config['first_tagl_close'] = '</li>';
$config['last_tag_open'] = '<li class="page-item">';
$config['last_tagl_close'] = '</li>';
$config['last_link'] = 'First';
$config['first_link'] = 'Last'
$config['attributes'] = array('class' => 'page-link'); 
$this->pagination->initialize($config);
$data['pagination'] = $this->pagination->create_links();

$data['content'] = $this->load->view('view.php'$dataTRUE); 
$this->load->view('layout.php'$data); 
View - view.php
PHP Code:
<?= $pagination ?>
Reply

#3
How about the Model? Should I stick with it>
Reply

#4
(07-09-2019, 03:22 AM)Junie Wrote: How about the Model? Should I stick with it>

You wont get database data in controler or model, this is you choise
Reply

#5
(07-09-2019, 03:28 AM)Andryshok Wrote:
(07-09-2019, 03:22 AM)Junie Wrote: How about the Model? Should I stick with it>

You wont get database data in controler or model, this is you choise

I'm gonna try this out. Thanks for the help.
Reply


Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


Users browsing this thread:
1 Guest(s)


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2019 MyBB Group.