Codeigniter 数据表不显示

Codeigniter 数据表不显示,codeigniter,datatables,Codeigniter,Datatables,我是jQuery和Ajax的新手,但我发现了一个使用CodeIgniter和datatables的组合示例。我确实尝试了与示例相同的方法,但是我的数据表没有显示出来 控制器 class User extends CI_Controller { private $content; private $data; function __construct(){ parent::__construct(); $this->load->m

我是jQuery和Ajax的新手,但我发现了一个使用CodeIgniter和datatables的组合示例。我确实尝试了与示例相同的方法,但是我的数据表没有显示出来

控制器

class User extends CI_Controller {
    private $content;
    private $data;
    function __construct(){
        parent::__construct();
        $this->load->model('usermodel');
        $this->init();
    }
    function init(){
        if( $this->session->userdata('username') == '' ) redirect('auth');
        $this->data['username'] = $this->session->userdata('username');
    }

    function index(){
        //$this->content = $this->load->view('userListView', null, true);
        $this->content = 'users';
        $this->data['content'] = $this->content;
        //$this->data['users'] = json_encode($this->usermodel->getDataTable());
        $this->load->view('home', $this->data);
    }

    function data() {
        //print_r($this->usermodel->getDataTable());
        echo json_encode($this->usermodel->getDataTable());
        exit;
    }
模型

看法

主视图

<html>
<head>
<title>Admin MOS Template</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Copyright" content="">
<meta name="description" content="Admin MOS Template">
<meta name="keywords" content="Admin Page">
<meta name="author" content="">
<meta name="language" content="Bahasa Indonesia">

<link rel="shortcut icon" href="stylesheet/img/devil-icon.png"> <!--Pemanggilan gambar favicon-->
<link rel="stylesheet" type="text/css" href="<?php echo base_url();?>include/mos_admin/mos-css/mos-style.css"> <!--pemanggilan file css-->
<link type="text/css" href="<?php echo base_url(); ?>include/css/jquery.dataTables.css" rel="Stylesheet" />
<link type="text/css" href="<?php echo base_url(); ?>include/css/smoothness/jquery-ui-1.8.19.custom.css" rel="Stylesheet" />
<script type="text/javascript" src="<?php echo base_url(); ?>include/js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="<?php echo base_url(); ?>include/js/jquery.dataTables.min.js"></script>
</head>

<body>
<?php
//print_r($users);
//echo $strFormType;
?>
<div id="header">
    <div class="inHeader">
        <div class="mosAdmin">
            <?php $this->load->view('headerview');?>
        </div>
        <div class="clear"></div>
    </div>
</div>

<div id="wrapper">
    <div id="leftBar">
        <?php $this->load->view('leftBarview'); ?>
    </div>

    <div id="rightContent">
        <?php
        if($content == 'changepass'){
            $this->load->view('changepassview');
        }
        else if($content == 'form'){
            $this->load->view('userformview');
        }
        else if($content == 'users'){
            $this->load->view('userlistview');
        }
        else{
            $this->load->view('rightContentview');
        }
        ?>
    </div>

    <div class="clear"></div>

    <div id="footer">
        <?php $this->load->view('footerview'); ?>
    </div>
</div>
</body>
</html>

您是否碰巧将$this->data中的“data”对象与函数数据等中的数据方法混淆了?对于使用ajax,您还需要使用js代码,类似于jquery:

$(document).ready(function() { 
   $('#element_trigger_ajax').click(function(){

            var my_url = 'YOUR URL';//www.example.com/user/data
            params = {elem_id:$('#some_param').val()};
                $.ajax({
                    async:false,
                    type:'POST',
                    url: my_url,
                    data:params,
                    success: function(resp){
                        # This will load the response from your data method in the user controller within the element container div
                        $('div#element_container_that_will_change').html(resp);
                    }
                });

     });  

}); 

调用index.php/user/data时不要包含index.php。只使用:你得到了什么错误?Donny到底缺少了什么?@Marko:我没有生成.htaccess,所以我必须包含index.php,所有:我的问题已经解决了,我只是缺少layout.js和jquery.ui.js来包含在home中。php:我很高兴你解决了这个问题。虽然您没有htaccess,但在使用base_url时不必包含index.php;应该是如果$此->会话->用户数据'username'重定向'auth';thx for advance before despina,我的问题已经解决了,我只是缺少layout.js和jquery.ui也包括:D
<html>
<head>
<title>Admin MOS Template</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Copyright" content="">
<meta name="description" content="Admin MOS Template">
<meta name="keywords" content="Admin Page">
<meta name="author" content="">
<meta name="language" content="Bahasa Indonesia">

<link rel="shortcut icon" href="stylesheet/img/devil-icon.png"> <!--Pemanggilan gambar favicon-->
<link rel="stylesheet" type="text/css" href="<?php echo base_url();?>include/mos_admin/mos-css/mos-style.css"> <!--pemanggilan file css-->
<link type="text/css" href="<?php echo base_url(); ?>include/css/jquery.dataTables.css" rel="Stylesheet" />
<link type="text/css" href="<?php echo base_url(); ?>include/css/smoothness/jquery-ui-1.8.19.custom.css" rel="Stylesheet" />
<script type="text/javascript" src="<?php echo base_url(); ?>include/js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="<?php echo base_url(); ?>include/js/jquery.dataTables.min.js"></script>
</head>

<body>
<?php
//print_r($users);
//echo $strFormType;
?>
<div id="header">
    <div class="inHeader">
        <div class="mosAdmin">
            <?php $this->load->view('headerview');?>
        </div>
        <div class="clear"></div>
    </div>
</div>

<div id="wrapper">
    <div id="leftBar">
        <?php $this->load->view('leftBarview'); ?>
    </div>

    <div id="rightContent">
        <?php
        if($content == 'changepass'){
            $this->load->view('changepassview');
        }
        else if($content == 'form'){
            $this->load->view('userformview');
        }
        else if($content == 'users'){
            $this->load->view('userlistview');
        }
        else{
            $this->load->view('rightContentview');
        }
        ?>
    </div>

    <div class="clear"></div>

    <div id="footer">
        <?php $this->load->view('footerview'); ?>
    </div>
</div>
</body>
</html>
$(document).ready(function() { 
   $('#element_trigger_ajax').click(function(){

            var my_url = 'YOUR URL';//www.example.com/user/data
            params = {elem_id:$('#some_param').val()};
                $.ajax({
                    async:false,
                    type:'POST',
                    url: my_url,
                    data:params,
                    success: function(resp){
                        # This will load the response from your data method in the user controller within the element container div
                        $('div#element_container_that_will_change').html(resp);
                    }
                });

     });  

});