2015-02-20 2 views
0

Во-первых, извините за мой плохой английский, если вы не понимаете, что я говорю, вы можете попросить его, и я буду искать другие подходящие и точные слова.Как обновить данные в CodeIgniter?

Теперь я работаю с codeigniter за последние 2 недели, поэтому у меня так много вопросов, но я нашел 1, который висит у меня на уме.

Я начал с простого CRUD, а затем сделаю его продвинутым, пока это хорошо, пока я не застрял при обновлении данных. Когда я нажимаю кнопку «отправить», я получаю только 404 страницы. И когда я вижу базу данных, ничего не меняется.

Вот код контроллера:

<?php if(!defined('BASEPATH')) exit('No direct script access allowed'); 
Class Master_user extends CI_Controller { 
function __construct(){ 
    parent::__construct(); 
    $this->load->model('mod_master_user'); 
    $this->load->library('datatables'); 
} 
public function index(){ 
    if ($this->session->userdata('type') == 'admin') { 
     $data['hasil'] = $this->mod_master_user->getall(); 
     $datum['content'] = $this->load>view('master_user/view',$data,true); 
     $this->load->view('main',$datum); 
    } else if ($this->session->userdata('type') == 'user'){ 
     $a= $this->load->model('m_absensi'); 
     $aa["content"] = $this->load->view('absensi/form',$a,true); 
     $this->load->view("absensi/mainUser",$aa); 
    } 
} 

public function tambah_data(){ 
    if($this->input->post('nama')){ 
     $this->mod_master_user->tambah(); 
     redirect('master_user'); 
    }else{ 
    $this->load->view('master_user/add'); 
    } 
} 

public function update_data($id_user)**//i use this method for updating data**{ 
    if($this->input->post('submit')){ 
     $this->mod_master_user->update($id_user); 
     redirect('master_user/index'); 
    } 
    $data['hasil']=$this->mod_master_user->getById($id_user); 
    $this->load->view('master_user/edit',$data); 
} 

public function delete_data($id_user){ 
    $this->mod_master_user->delete($id_user); 
    redirect('master_user'); 
} 

public function error() 
{ 
    $this->output->set_status_header('404'); 
    $data['content'] = '404'; 
    $this->load->view('master_user/404',$data); 
} 

public function print_report() 
{ 
    $this->load->view('master_user/print'); 
} 

public function jam_masuk() 
{ 
    $this->load->view('master_user/jam_masuk'); 
} 

}

Здесь идет код на модели:

<?php if(!defined('BASEPATH')) exit('No direct script access allowed'); 
Class Mod_master_user extends CI_Model{ 

var $tabel_name = 'master_user'; 

function __construct() { 
    parent::__construct(); 
} 

public function getall(){ 
    $ambil_data = $this->db->get('master_user');//mengambil tabel master_user 

    if ($ambil_data->num_rows() > 0){ //jika data lebih dari 0 
     foreach ($ambil_data->result() as $data){ 
      $hasil[] = $data; 
     } 
     return $hasil; 
    } 
} 

public function tambah(){ 
    $id_user = $this->input->post('id_user');  
    $nama = $this->input->post('nama');  
    $password = $this->input->post('password'); 
    $tanggal_lahir = $this->input->post('tanggal_lahir'); 
    $tempat_lahir = $this->input->post('tempat_lahir'); 
    $role = $this->input->post('role'); 
    $data = array (
     'id_user'=> $id_user,  
     'nama'=>$nama, 
     'password'=>md5($password), 
     'tanggal_lahir'=>date('Y-m-d',strtotime($tanggal_lahir)), 
     'tempat_lahir'=>$tempat_lahir, 
     'role'=>$role 
    ); 
    $this->db->where('id_user',$id_user); 
    $this->db->insert('master_user', $data); 
} 

public function update($id_user)**//i use this method to updating data**{ 
    $id_user=$this->input->post('id_user');  
    $nama=$this->input->post('nama');  
    $password=$this->input->post('password'); 
    $tanggal_lahir=$this->input->post('tanggal_lahir'); 
    $tempat_lahir=$this->input->post('tempat_lahir'); 
    $role=$this->input->post('role'); 
     $data = array (
     'id_user' => $id_user,  
     'nama' => $nama, 
     'password'=> $password, 
     'tanggal_lahir'=> $tanggal_lahir, 
     'tempat_lahir'=> $tempat_lahir, 
     'role'=>$role 
    ); 
    $this->db->where('id_user',$id_user); 
    $this->db->update('master_user',$data); //update data 
} 

public function getById($id_user){ //mengambil data dari db berdasarkan id (primary key) 
    return $this->db->get_where('master_user',array('id_user'=>$id_user))->row(); 
} 

public function delete($id_user){ 
    $this->db->where('id_user',$id_user); 
    $this->db->delete('master_user'); //query delete data 
} 

public function cek_user_login($username, $password) { 
    $this->db->select('*'); 
    $this->db->where('NAMA', $username); 
    $this->db->where('PASSWORD', md5($password)); 

    $query = $this->db->get($this->tabel_name, 1); 



    if ($query->num_rows() == 1) { 
     $this->db->limit(1); 
     return $query->row_array(); 
    } 
} 

public function validasi() 
{ 
    $nama = $this->input->post('nama'); 
    $password = $this->input->post('password'); 
    $check = $this->mod_master_user->check($nama, md5($password)); 
    if($check->num_rows() > 0) 
    { 
     //login berhasil, buat session 
     //$this->session->set_userdata('username',$username); 
     redirect('master_user'); 
    } 
    else 
    { 
     //login gagal 
     //$this->session->set_flashdata('message','Username atau password salah'); 
     redirect('users'); 
    } 
} 

}

До сих пор я не получаю никакого ответа и на других форумах, поэтому я попросил ответить здесь :) Любой ответ/помощь будет оценена ованные. Спасибо :)

+0

Где находится ваш код просмотра.? – Yogesh

ответ

0

Прошло некоторое время с тех пор, как я использовал CodeIgniter.

Вы загружаете класс ввода? так что вы можете фактически получать данные $ _GET и $ _POST? Я думаю, что это действительно по умолчанию.

Это может быть слишком просто, но вы вызываете правильный URI и уверены, что он достиг вашего взгляда ??

Может помочь вам увидеть ваше мнение, используете ли вы для этого вспомогательную форму? https://ellislab.com/codeIgniter/user-guide/helpers/form_helper.html

0

Если у вас есть 404, проблема в вашей форме action tag. Это означает, что он не публикует правильный URL-адрес.

0

Это, скорее всего, (если не верно) из-за плохого маршрута.

В конфигурации/routes.php, вам нужен маршрут как: $route['master_user/update/(:any)'] = 'master_user/update_data/$1;

А на ваш взгляд, вам нужно будет форму с действием указывая на этот маршрут, такие как:

<form action="master_user/update_data/1"> <!-- your fields and submit button --> </form>

Где номер 1 (в URL-адресе действия) - это идентификатор обновляемого регистра.

Смежные вопросы