数据视图无法正常工作的Codeigniter数据表

时间:2018-09-16 08:19:38

标签: codeigniter datatable

我使用下表管理机构的来信与采取的行动

letter_branch

+-----------+-------------+
| branch_id | branch_name |
+-----------+-------------+
|         1 | Admin       |
|         2 | Accounts    |
|         3 | Engineering |
|         4 | Health      |
+-----------+-------------+

letter_letter

+-----------+-------------+--------+----------------+
| letter_id | description | branch | current_status |
+-----------+-------------+--------+----------------+
|         1 | A           |      1 | Pending        |
|         2 | B           |      4 | Pending        |
|         3 | C           |      2 | Start          |
|         4 | D           |      4 | Pending        |
|         5 | E           |      3 | Start          |
|         6 | F           |      2 | Finish         |
+-----------+-------------+--------+----------------+

letter_action_taken

+------------------------+--------+---------------------+
| letter_action_taken_id | ref_no | action_taken_status |
+------------------------+--------+---------------------+
|                    100 |      3 |                   1 |
|                    101 |      5 |                   1 |
|                    102 |      6 |                   2 |
+------------------------+--------+---------------------+

02)系统正确执行接收到的信件的详细信息以及每个字母的已采取操作。 (letter_action_taken.ref_no = letter_letter.letter_id)

03)我在codeigniter中使用以下方法通过使用“数据表”查看收到的信件与采取的行动

public function getactionTaken($id=null)
    {       
        $this->load->library('datatables');
        $this->datatables
            ->select("letter_letter.letter_id, letter_action.action_name as action, letter_action_taken.forward as forward,
            letter_action_taken.a_date as action_date, letter_action_taken.file_no as file_no, letter_action_taken.action_taken_status")
            ->from('letter_action_taken')

              ->join('letter_letter','letter_letter.letter_id=letter_action_taken.ref_no')
              ->join('letter_action','letter_action.action_id=letter_action_taken.action','left')

            ->where("letter_action_taken.status=1 AND letter_action_taken.ref_no=$id" )         
            ->unset_column("letter_letter.letter_id");
        $this->datatables->add_column("Actions", $action, "letter_letter.letter_id");

        $branch = $this->session->userdata('branch_id');
        if ($branch && $branch !=5)
        $this->datatables->where('letter_letter.branch', $branch);

        $this->db->order_by('a_date', 'DESC');

        echo $this->datatables->generate();
    }

并使用了以下HTML / JavaScript / Bootstrap

<style>
    .group {
        background: #575757 !important;
        color: #FFFFFF;
    }

     .table > tbody > tr > th,  .table > tbody > tr > td{
        font-size: 13px;
    }
</style>

<script type="text/javascript">
$(document).on('change', '#action', function () {
        var val = $(this).val();
        if(val == 1 || val == 6){
            $('#ref-col').hide();
        }
        else{
            $('#ref-col').show();
        }
});

$(document).ready(function () {

 $('#ref-col').hide();

    $(document).ready(function () {

        var oTable = $('#ExData').dataTable({

            "aaSorting": [[0, "asc"]],
            "aLengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "ALL"]],
            "iDisplayLength": 10,
            'bProcessing': true, 'bServerSide': true,
            'sAjaxSource': '<?= base_url() . "Letter/getactionTaken" ?>',
            'fnServerData': function (sSource, aoData, fnCallback) {
                aoData.push({
                    "name": "type",
                    "value": "1 "
                });
                $.ajax({'dataType': 'json', 'type': 'POST', 'url': sSource, 'data': aoData, 'success': fnCallback});
            },
            'fnRowCallback': function (nRow, aData, iDisplayIndex) {

            },
            "aoColumns": [{'sName': 'action'}, {'sName': 'forward'}, {'sName': 'action_date'}, {'sName': 'file_no'}, 
            {"class":"text-center","mRender":st}, null],
            "fnFooterCallback": function (nRow, aaData, iStart, iEnd, aiDisplay) {

            }

        });


    });
});

</script>
<div class="box box-info">
    <div class="box box-info collapsed-box">
        <div class="box-header with-border">
            <h3 class="box-title">Adding of Actions</h3>

            <div class="box-tools pull-right">

                <button type="button" class="btn btn-box-tool" style="font-size: 16px;" data-widget="collapse"><i
                            class="fa fa-plus"></i>
                </button>

            </div>
            <!-- /.box-tools -->
        </div>
        <!-- /.box-header -->
        <div class="box-body" style="display: block">
            <form action="" method="post">
                <div class="row">
                    <div class="col-md-3">
                                <div class="form-group"><label>Action</label><font
                                            style="font-size: 14px; color: #AA0000">*</font>
                                    <select name="action" id="action" class="form-control select2">
                                        <option value="">Select Action</option>
                                        <?php
                                        if (!empty($act)) {
                                            foreach ($act as $row) {

                                                ?>

                                                <option value="<?= $row->action_id ?>"><?= $row->action_name ?></option>
                                                <?php
                                            }
                                        }

                                        ?>
                                    </select>
                                </div>
                            </div>

                    <div class="col-md-3" id="ref-col">
                                <div class="form-group"><label>Forwarded Committee / Officer / Report</label><font
                                            style="font-size: 14px; color: #AA0000"></font>
                                    <input type="text" name="forward" id="forward" class="form-control"
                                           value="<?= set_value('forward') ?>">
                                </div>
                    </div>

                    <div class="col-md-3">
                        <div class="form-group"><label>Date of Action </label>
                            <input type="text" name="a_date" id="a_date" readonly
                                                                          class="form-control datepicker">
                        </div>
                    </div>
                    <div class="col-md-3">
                        <div class="form-group" id="file_no"><label>File No</label>
                            <input type="text"  name="file_no" id="file_no" class="number form-control" >
                        </div>
                    </div>

                <div class="col-md-3">
                                <div class="form-group"><label>Action Taken Status</label><font
                                            style="font-size: 14px; color: #AA0000">*</font>
                                    <select class="form-control" name="action_taken_status">
                                        <option value="">Select Action Taken Status</option>
                                        <option value="1">1</option>
                                        <option value="2">2</option>


                                    </select>
                                </div>
                        </div>

                </div>


                <!--table-->

                <div class="row">
                    <div class="col-md-4">
                        <div class="form-group">
                            <input type="submit" value="Add Action" class="btn btn-primary btn-lg">

                        </div>
                    </div>
                </div>
            </form>

            <!--end of table-->
        </div>

    </div>
    <!-- /.box-body -->
    <div class="box-body">
        <div class="table-responsive">
            <table id="ExData" cellpadding="0" cellspacing="0" border="0"
                   class="table table-bordered table-condensed table-hover table-striped reports-table">
                <thead id="th">
                <tr class="info">

                    <th>Action</th>
                    <th>Forwarded Committee / Officer / Report</th>
                    <th>Date of Action</th>
                    <th>File No</th>
                    <th>Action Status</th>
                    <th class="text-center">Action</th>

                </tr>
                </thead>
                <tbody>
                <tr>
                    <td colspan="7" class="dataTables_empty">Loading Data from Server</td>
                </tr>
                </tbody>

            </table>
        </div>
    </div>
</div>
<script src="https://cdn.datatables.net/1.10.13/js/jquery.dataTables.min.js"></script>

<script type="text/javascript">
    function st(x) {

        if(x == '1') {
           return '<div class="text-center"><span class="label label-warning">' + 'Actions On-Going' + '</span></div>';
        }else if(x == '2') {
           return '<div class="text-center"><span class="label label-success">' + 'Actions Completed' + '</span></div>';
        }else if(x == '3') {
           return '<div class="text-center"><span class="label label-info">' + 'Not Relevant' + '</span></div>';
        }else{
            return '<div class="text-center"><span class="label label-danger">' + 'Actions Pending' + '</span></div>';
        }

    }
</script>
<script src="https://cdn.datatables.net/1.10.13/js/jquery.dataTables.min.js"></script>
<script src="//cdn.datatables.net/plug-ins/1.10.13/api/sum().js"></script>

04)通过使用以上代码,系统将显示对混合在一起的所有字母采取的所有操作。出问题了。

但是我需要对字母分别采取措施。 例如:-需要显示letter_action_taken表的第一条记录,该表用于letter_id,3

05)我不明白我要怎么做。任何人都可以参加并帮助我修复此错误吗?

我认为需要在方法中修改以下行。

-> where(“ letter_action_taken.status = 1 AND letter_action_taken.ref_no = $ id”)

0 个答案:

没有答案