不能让我的应用程序's数据表工作.它抛出一个jQuery错误


Cant get my app's dataTables to work. It throws an jQuery Error

这是我的应用程序的视图:http://codepad.org/hQ0qk2jZ

这是我的应用程序的控制器:

    class users extends CI_Controller
    {
public function __construct()
{
    parent::__construct();
    if( ! $this->session->userdata("uid"))
        return redirect("login");
    $this->load->model("admin/user_model", "user");
    $this->load->helper("form");
}
public function index()
{
    $this->load->helper('url');
    $this->load->view('admin/users/main');
}
public function ajax_list()
{
    $list = $this->user->get_datatables();
    $data = array();
    $no = $_POST['start'];
    foreach ($list as $user) {
        $no++;
        $row = array();
        $row[] = $user->firstName;
        $row[] = $user->lastName;
        $row[] = $user->gender;
        $row[] = $user->address;
        $row[] = $user->dob;
        if($user->photo)
            $row[] = '<a href="'.base_url('upload/'.$user->photo).'" target="_blank"><img src="'.base_url('upload/'.$user->photo).'" class="img-responsive" /></a>';
        else
            $row[] = '(No photo)';
        //add html for action
        $row[] = '<a class="btn btn-sm btn-primary" href="javascript:void(0)" title="Edit" onclick="edit_user('."'".$user->id."'".')"><i class="glyphicon glyphicon-pencil"></i> Edit</a>
              <a class="btn btn-sm btn-danger" href="javascript:void(0)" title="Hapus" onclick="delete_user('."'".$user->id."'".')"><i class="glyphicon glyphicon-trash"></i> Delete</a>';
        $data[] = $row;
    }
    $output = array(
                    "draw" => $_POST['draw'],
                    "recordsTotal" => $this->user->count_all(),
                    "recordsFiltered" => $this->user->count_filtered(),
                    "data" => $data,
            );
    //output to json format
    echo json_encode($output);
}
public function ajax_edit($id)
{
    $data = $this->user->get_by_id($id);
    $data->dob = ($data->dob == '0000-00-00') ? '' : $data->dob; // if 0000-00-00 set tu empty for datepicker compatibility
    echo json_encode($data);
}
public function ajax_add()
{
    $this->_validate();
    $data = array(
            'firstName' => $this->input->post('firstName'),
            'lastName' => $this->input->post('lastName'),
            'gender' => $this->input->post('gender'),
            'address' => $this->input->post('address'),
            'dob' => $this->input->post('dob'),
        );
    if(!empty($_FILES['photo']['name']))
    {
        $upload = $this->_do_upload();
        $data['photo'] = $upload;
    }
    $insert = $this->user->save($data);
    echo json_encode(array("status" => TRUE));
}
public function ajax_update()
{
    $this->_validate();
    $data = array(
            'firstName' => $this->input->post('firstName'),
            'lastName' => $this->input->post('lastName'),
            'gender' => $this->input->post('gender'),
            'address' => $this->input->post('address'),
            'dob' => $this->input->post('dob'),
        );
    if($this->input->post('remove_photo')) // if remove photo checked
    {
        if(file_exists('upload/'.$this->input->post('remove_photo')) && $this->input->post('remove_photo'))
            unlink('upload/'.$this->input->post('remove_photo'));
        $data['photo'] = '';
    }
    if(!empty($_FILES['photo']['name']))
    {
        $upload = $this->_do_upload();
        //delete file
        $user = $this->user->get_by_id($this->input->post('id'));
        if(file_exists('upload/'.$user->photo) && $user->photo)
            unlink('upload/'.$user->photo);
        $data['photo'] = $upload;
    }
    $this->user->update(array('id' => $this->input->post('id')), $data);
    echo json_encode(array("status" => TRUE));
}
public function ajax_delete($id)
{
    //delete file
    $user = $this->user->get_by_id($id);
    if(file_exists('upload/'.$user->photo) && $user->photo)
        unlink('upload/'.$user->photo);
    $this->user->delete_by_id($id);
    echo json_encode(array("status" => TRUE));
}
private function _do_upload()
{
    $config['upload_path']          = 'upload/';
    $config['allowed_types']        = 'gif|jpg|png';
    $config['max_size']             = 100; //set max size allowed in Kilobyte
    $config['max_width']            = 1000; // set max width image allowed
    $config['max_height']           = 1000; // set max height allowed
    $config['file_name']            = round(microtime(true) * 1000); //just milisecond timestamp fot unique name
    $this->load->library('upload', $config);
    if(!$this->upload->do_upload('photo')) //upload and validate
    {
        $data['inputerror'][] = 'photo';
        $data['error_string'][] = 'Upload error: '.$this->upload->display_errors('',''); //show ajax error
        $data['status'] = FALSE;
        echo json_encode($data);
        exit();
    }
    return $this->upload->data('file_name');
}
private function _validate()
{
    $data = array();
    $data['error_string'] = array();
    $data['inputerror'] = array();
    $data['status'] = TRUE;
    if($this->input->post('firstName') == '')
    {
        $data['inputerror'][] = 'firstName';
        $data['error_string'][] = 'First name is required';
        $data['status'] = FALSE;
    }
    if($this->input->post('lastName') == '')
    {
        $data['inputerror'][] = 'lastName';
        $data['error_string'][] = 'Last name is required';
        $data['status'] = FALSE;
    }
    if($this->input->post('dob') == '')
    {
        $data['inputerror'][] = 'dob';
        $data['error_string'][] = 'Date of Birth is required';
        $data['status'] = FALSE;
    }
    if($this->input->post('gender') == '')
    {
        $data['inputerror'][] = 'gender';
        $data['error_string'][] = 'Please select gender';
        $data['status'] = FALSE;
    }
    if($this->input->post('address') == '')
    {
        $data['inputerror'][] = 'address';
        $data['error_string'][] = 'Addess is required';
        $data['status'] = FALSE;
    }
    if($data['status'] === FALSE)
    {
        echo json_encode($data);
        exit();
    }
}
}

输出

  1. jQuery库只能从一个地方调用。
  2. 数据库正在被调用。

我还是不能让这东西工作。

TLDR -您缺少一个脚本

你正在加载dataTables.bootstrap.js,这是Bootstrap的样式库:

datatable及其扩展都可以通过各种样式进行样式化框架,以确保您的表格无缝地适合您的网站/应用程序~ https://datatables.net/download/index

但是你错过了核心数据库库(jquery.dataTables.js)。点击上面的链接获取所需文件