无法获取和传递变量 URI 段以用于数据表服务器端



我正在使用CodeIgniter和DataTable Server端来显示我的数据从数据库显示。我想将段URL形成我的URL视图,并将该细分市场传递给我的控制器,然后显示到表中的最后一列。但没有工作。

这个我的视图url

http://localhost/sosboard/admin/module/55

这是我的控制器

function data_module()
    {
        // Datatables Variables
        $submenu_id     = $this->uri->segment(3);
        $draw = intval($this->input->get("draw"));
        $start = intval($this->input->get("start"));
        $length = intval($this->input->get("length"));
        $module= $this->m_admin->main_menu();
        $data = array();
        //$page = $data['write'];
        foreach ($module->result() as $rows) {
            $data[] = array(
                $rows->title,
                $rows->seq,
                $rows->target,
                $rows->icon_code,
                $rows->active,
                $submenu_id

            );
        }
        $output = array(
           "draw" => $draw,
             "recordsTotal" => $module->num_rows(),
             "recordsFiltered" => $module->num_rows(),
             "data" => $data
        );
      echo json_encode($output);
    }

这是我的HTML视图&JavaScript

<div class="panel-body">
        <table class='table' id="myTable">
            <thead>
                <tr>
                    <th>Main Menu</th>
                    <th>Seq</th>
                    <th>Target</th>
                    <th>Icon Code</th>
                    <th>Active</th>
                    <th>Action</th>
                </tr>
            </thead>
            <tbody></tbody>
        </table>
    </div> 

<script>
    $(document).ready(function() {
        $('#myTable').DataTable({
            "ajax": {
                "url": "<?php echo site_url('admin/data_module/') ?>",
                "type": "GET"
            }
        });
    });
</script>

所有列都很好,但最后一列未显示。

请帮忙。谢谢

它不起作用,因为当您通过AJAX在页面/admin/data_module/上实际上是实际时,您正在尝试从URI /admin/module/55获取细分。因此,URI 3和4不存在您期望的。仅URI段:(1(Sosboard(2(Admin(3(该页面中存在Data_module。

我建议将参数作为get

传递
$(document).ready(function() {
        $('#myTable').DataTable({
            "ajax": {
                "url": "<?php echo site_url('admin/data_module/') ?>",
                "type": "GET",
                'data': { param1: '<?php echo $this->uri->segment(3); // module ?>' }
            }
        });
    });

data_module:

function data_module()
    {
        // Datatables Variables
        $submenu_id     = $this->input->get('param1');

如果您需要从URI使用段4中获得55。如果您需要两者都通过,则只需将另一个参数添加到Ajax,并以与我所显示的相同的方式获取。

最新更新