Модальное отображение данных с использованием AJAX в codeigniter - PullRequest
0 голосов
/ 22 января 2019

Эти несколько дней я застрял с этой модальной вещью.У меня есть длинный список данных .. и для того, чтобы уменьшить слишком много данных, отображаемых на экране.Я планирую использовать модальные, поэтому, когда пользователь хочет увидеть детали ... они просто нажимают на конкретные данные и система отображает все.Однако для того, чтобы отобразить все данные, нужно иметь другую функцию для вызова.Я огляделся и обнаружил, что нет способа вызвать функцию для заполнения данных и одновременно открыть модальную.Поэтому я опробовал AJAX & JS.

Моя проблема ... функция не работала, чтобы открывать модальные и отображать данные.Спасибо, если вы, ребята, можете мне помочь .. Заранее спасибо.Вот мои коды:

Модальные: modal-finance.php

defined('BASEPATH') or exit('No direct script access allowed');
class Model_finance extends CI_Model {

public function __construct() {
    $this->load->database();
}

// To list HMS data
public function get_hms_data() {

          $query = $this->db->select(array(
             'c.*',
             ), false)
             ->where(
                     'c.pan is NOT NULL',NULL,FALSE
                    ) 
             ->get('coll_tbl c');

         if ($query->num_rows() > 0) {
            return $query->result();
         }
         else {
           return false;
         }
}

// To list HMS data match with PBB data by PAN No
public function matched_by_pan($pan_no){
         $query = $this->db->select(array(
                 'c.*',
                 'p.approval_code',
                 'p.card_no'
             ), false)
             ->join('pbb_cc_tbl p', 'p.approval_code = c.approval_code','left')
             ->like(array(
                     'c.pan' => $pan_no
                    ))
             ->get('coll_tbl c');
         if ($query->num_rows() > 0) {
             return $query->result();
         } else {
             return false;
         }  
}

Контроллер: Finance.php

class Finance extends CI_Controller {

    public function __construct() {
    parent::__construct();
        $this->load->model('model_finance');
    }

    /* Function to call the view of finance */
    public function index() {
        $this->load->view('pages/finance');
    }


    public function get_matchBYpan()
   {
        $this->load->model('model_finance');

          $cardData = $this->input->post('cardData');
          $last4pan = substr($cardData,12);
          echo $last4pan;


          if(isset($last4pan) and !empty($last4pan))
          {
                 $records = $this->model_finance->matched_by_pan($last4pan);
                 $i=1;
                 $output = '';
                 foreach($records as $row)
                 {
                        $output .= '      
                        <h4 class="text-center">'.$cardData.'</h4><br> 
                        <table class="table table-bordered table-hover">
                        <thead>
                        <tr>
                               <th>No</th>
                               <th>Booking ID</th>
                               <th>PAN No</th>
                               <th>Approval Code</th>
                               <th>Method</th>
                               <th>Source</th>
                               <th>OTA</th>
                               <th>Amount</th>     
                        </tr>
                        </thead>
                        <tbody>

                        <tr>
                               <td>'.$i.'</td> 
                               <td>'.$row->booking_id.'</td>
                               <td>'.$row->pan.'</td>
                               <td>'.$row->approval_code.'</td>
                               <td>'.$row->method.'</td>
                               <td>'.$row->source.'</td>
                               <td>'.$row->ota.'</td>
                               <td>'.$row->total.'</td>
                        </tr>
                        </tbody>
                        </table>';
                 $i++;
                 }        
                 echo $output;

          }
   }

Просмотров: fin_match.php

<!-- modal-tableHMS starts -->
     <div id="modal_tableHMS" class="modal fade" tabindex="-1">
                                                        <div class="modal-dialog modal-lg">
                                                            <div class="modal-content">
                                                                <div class="modal-header no-padding">
                                                                                <div class="table-header">
                                                                                                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">
                                                                                                    <span class="white">&times;</span>
                                                                                                </button>
                                                                                                HMS data matched by last 4 digit PBB Card number (PAN)
                                                                                </div>
                                                                </div>

                                                                <div class="modal-body no-padding">
                                                                    <div id="hms_result"></div>

                                                                </div>
                                                                <div class="modal-footer no-margin-top">
                                                                            <button class="btn btn-sm btn-danger pull-left" data-dismiss="modal">
                                                                                <i class="ace-icon fa fa-times"></i>
                                                                                Close
                                                                            </button>
                                                                </div>
                                                            </div><!-- /.modal-content -->
                                                        </div><!-- /.modal-dialog -->
                                </div><!-- /.modal-table -->

                </div> <!-- /.main-content-inner -->

<script type="text/javascript">

$(document).ready(function(){
    $('.view_data').click(function(){
        var cardData = $(this).attr('id');

        $.ajax({
            url: "<?php echo base_url() ?>Finance/get_matchBYpan",
            method: "POST",
            data: {cardData:cardData},
            success: function(data){
                $('#hms_result').html(data);
                $('#modal_tableHMS').modal('show');
            }
     });
 });

});

<!-- other codes -->

<div class="row">
            <div class="col-xs-6">
                <div class="col-xs-12">
                <center><h3 class="row header smaller lighter blue">
                <span class="col-xs-12"><b> PBB Data </b></span>
                </h3></center>
                <table id="dataTablePBB" class="table  table-bordered table-hover">
                    <thead>
                    <tr>
                        <th>No</th>
                        <th>Transaction Date</th>
                        <th>PBB Card Number</th>
                        <th>Card Type</th>
                        <th>Approval Code</th>
                        <th>Currency</th>
                        <th>Gross Amount</th>
                        <th>Trace No</th>     
                    </tr>
                    </thead>
                    <tbody>
                    <?php
                        if(!empty($PBBdata)):
                        $i=1;
                        foreach($PBBdata as $row)
                        {
                         echo '<tr>';
                         echo '<td>'.$i.'</td>';
                         echo '<td>'.$row->trans_date.'</td>';
                         echo '<td>';
                    ?>
                        <input type="button" name="view" value="<?php echo $row->card_no; ?>" id="<?php echo $row->card_no; ?>" class="btn btn-info btn-sm view_data"">

                    <?php
                         echo '</td>';
                         echo '<td>'.$row->card_type.'</td>';
                         echo '<td>'.$row->approval_code.'</td>';
                         echo '<td>'.$row->gross_cur.'</td>';                                   
                         echo '<td>'.$row->gross_amt.'</td>';
                         echo '<td>'.$row->trace_no.'</td>';
                         echo '</tr>';
                         $i++;
                         }
                         endif;
                    ?>
                    </tbody>
                    </table>
                </div> <!--col-xs-12-->
            </div>

1 Ответ

0 голосов
/ 22 января 2019

Похоже, что на вашем JS-скрипте есть возвратный сбой.Если вы используете Chrome, вы можете проверить его на Консоль или Сеть -> XHR , есть более подробная информация об этой ошибке.

И эта переменная $ output должна быть массивом, потому что представление нуждается в хранилище, поскольку оно находится внутри foreach цикла и возвращает его следующим образом * echo json_encode ($ output) * Пожалуйста, посмотрите больше здесь.

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