Пользовательский фильтр и экспорт отфильтрованных данных в таблицу Excel не работает в Codeigniter - PullRequest
0 голосов
/ 25 января 2020

У меня есть таблица данных с полем поиска. Я пытаюсь отфильтровать таблицу, используя диапазон данных и статус заказа. Я хочу отфильтровать таблицу, также используя диапазон и статус, а также хочу экспортировать в таблицу Excel. Код работает только для поиска и простого экспорта (не отфильтрованные данные).

Спасибо

Это мой файл (вид, контроллер и модель)

Вид: -

<a class="pull-right btn btn-primary btn-xs" href="<?php echo base_url()?>order/createXLS"><i class="fa fa-file-excel-o"></i> Export Data</a>
<div class="panel panel-default">
              <div class="panel-heading">
                <h3 class="panel-title" >Custom Filter : </h3>
            </div>
            <div class="panel-body">
                <form id="form-filter" method="POST" action="order/ajax_list" class="form-horizontal">

                    <div class="form-group">
                        <label for="FirstName" class="col-sm-2 control-label">From</label>
                        <div class="col-sm-4">
                            <input type="date" class="form-control" id="from">
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="LastName" class="col-sm-2 control-label">To</label>
                        <div class="col-sm-4">
                            <input type="date" class="form-control" id="to">
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="LastName" class="col-sm-2 control-label">Status</label>
                        <div class="col-sm-4">
                            <input type="text" class="form-control" id="status">
                        </div>
                    </div>
                    <div class="form-group">
                        <label for="LastName" class="col-sm-2 control-label"></label>
                        <div class="col-sm-4">
                            <button type="button" id="btn-filter" class="btn btn-primary">Filter</button>
                            <button type="button" id="btn-reset" class="btn btn-default">Reset</button>
                        </div>
                    </div>
                </form>
            </div>  
        </div> 
   <table class="table table-bordered table-striped" id="mytable"> 
        <thead> 
            <tr> 
                <th width="80px">No</th> 
                <th>Order Number</th> 
                <th>Service Date</th>
                <th>Service Location</th> 
                <th>Customer Name</th> 
                <th>Contact Number</th> 
                <th>Order Status</th>
                <th>Payment Status</th> 
                <th>Action</th> 
            </tr> 
        </thead> 
        <tbody> 
            <?php 
            $start = 0; 
            foreach ($job_positions_data as $job_positions) 
            { 
                ?> 
                <tr> 
                    <td> 
                        <?php echo ++$start ?> 
                    </td> 
                    <td> 
                        <?php echo $job_positions->order_number ?> 
                    </td> 
                    <td> 
                        <?php echo $job_positions->service_date ?> 
                    </td>
                    <td> 
                        <?php if($job_positions->service_location == 1)
                        {
                            echo 'vkool_branch';
                        }
                        else
                        {
                            echo 'customer_location' ;
                        }
                        ?> 
                    </td> 
                    <td> 
                        <?php echo $job_positions->firstname ?> 
                    </td> 
                    <td> 
                        <?php echo $job_positions->contact_number ?> 
                    </td> 
                    <td> 
                        <?php if($job_positions->order_status == 0)
                        {
                            echo 'Action Pending';
                        }
                        elseif($job_positions->order_status == 1)
                        {
                            echo 'Under Process' ;
                        }
                        elseif($job_positions->order_status == 2)
                        {
                            echo 'Cancelled' ;
                        }
                        elseif($job_positions->order_status == 3)
                        {
                            echo 'Completed' ;
                        }
                        elseif($job_positions->order_status == 4)
                        {
                            echo 'Refund' ;
                        }
                        ?>  
                    </td> 
                    <td> 
                        <?php if( $job_positions->payment_status == 1) 
                        {
                            echo 'Pending (Pay at Store)';
                        }
                        elseif($job_positions->payment_status == 0)
                        {
                            echo 'Pending (Pay Online)';
                        }
                        elseif($job_positions->payment_status == 14)
                        {
                           echo 'Paid';
                        }?> 
                    </td> 
                    <td style="text-align:center" width="200px"> 
 <a href="javascript:view_order(<?php echo $job_positions->id; ?>)"><i class="fa fa-search-plus"></i></a>
                    </td> 
                </tr> 
                <?php 
            } 
            ?> 
        </tbody> 
    </table> 

    <script type="text/javascript"> 
        $(document).ready(function() { 
            $("#mytable").dataTable(); 
        }); 
    </script>  

Контроллер: -

<code>public function createXLS() {

    $fileName = 'data-'.time().'.xlsx';  
    require_once APPPATH . "/third_party/PHPExcel/Classes/PHPExcel.php";
    $orderInfo = $this->Order_model->get_For_Export();
    $ordervalue = json_encode($orderInfo, true);

    /*echo '<pre>';
    print_r($orderInfo);
    echo '
'; выход; * / $ objPHPExcel = new PHPExcel (); $ ObjPHPExcel-> setActiveSheetIndex (0); // установить заголовок $ objPHPExcel-> getActiveSheet () -> SetCellValue ('A1', 'S.No'); $ objPHPExcel-> getActiveSheet () -> SetCellValue ('B1', 'Номер заказа'); $ objPHPExcel-> getActiveSheet () -> SetCellValue ('C1', 'Расположение службы'); $ objPHPExcel-> getActiveSheet () -> SetCellValue ('D1', 'First Name'); $ objPHPExcel-> getActiveSheet () -> SetCellValue ('E1', 'Last Name'); $ objPHPExcel-> getActiveSheet () -> SetCellValue ('F1', 'Contact_No'); $ objPHPExcel-> getActiveSheet () -> SetCellValue ('G1', 'Статус заказа'); $ objPHPExcel-> getActiveSheet () -> SetCellValue ('H1', 'Статус платежа'); // Стиль $ style = array ('alignment' => array ('horizontal' => PHPExcel_Style_Alignment :: HORIZONTAL_CENTER,), 'font' => array ('bold' => true, 'color' => array ('rgb '=>' 2F4F4F '),' size '=> 20,),); $ styleHeading = array ('alignment' => array ('horizontal' => PHPExcel_Style_Alignment :: HORIZONTAL_CENTER,), 'font' => array ('bold' => true, 'size' => 15,),); // set Row $ rowCount = 2; foreach ($ orderInfo как $ element) {$ objPHPExcel-> getActiveSheet () -> SetCellValue ('A'. $ rowCount, $ element ['id'])); $ objPHPExcel-> getActiveSheet () -> SetCellValue ('B'. $ rowCount, $ element ['order_number']); $ objPHPExcel-> getActiveSheet () -> SetCellValue ('C'. $ rowCount, $ element ['service_location']); $ objPHPExcel-> getActiveSheet () -> SetCellValue ('D'. $ rowCount, $ element ['firstname']); $ objPHPExcel-> getActiveSheet () -> SetCellValue ('E'. $ rowCount, $ element ['lastname']); $ objPHPExcel-> getActiveSheet () -> SetCellValue ('F'. $ rowCount, $ element ['contact_number']); $ objPHPExcel-> getActiveSheet () -> SetCellValue ('G'. $ rowCount, $ element ['order_status']); $ objPHPExcel-> getActiveSheet () -> SetCellValue ('H'. $ rowCount, $ element ['payment_status']); $ ROWCOUNT ++; } // скачать файл $ filename = "jobSummery". дата ( "YmdHis"). "XLS."; заголовок ('Content-Type: application / vnd.ms-excel'); заголовок ('Content-Disposition: attachment; filename = "'. $ filename. '"'); заголовок ('Cache-Control: max-age = 0'); $ objWriter = PHPExcel_IOFactory :: createWriter ($ objPHPExcel, 'Excel5'); $ ObjWriter-> Сохранить ( 'php: // выхода'); } publi c function list_view () {$ job_positions = $ this-> Order_model-> get_all (); $ data = array ('job_positions_data' => $ job_positions); $ this-> load-> view ('order / index', $ data); }

Модель: -

public function get_all() 
{ 
    $this->db->order_by('id', 'DESC');
    $this->db->from('tbl_order');

    $query = $this->db->get();
    $result = $query->result();

    return $result; 
}
public function get_For_Export() 
{ 
    $this->db->order_by('id', 'DESC');
    $this->db->from('tbl_order');

    $query = $this->db->get();
    $result = $query->result_array();

    return $result; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...