Halo All.... Saya Pendatang baru di codeigniter, Saya lagi belajar bikin aplikasi untuk insert, update, delete. Tapi kepentok pas mau edit data.. tolong bantuannya....
Databasenya :
-- phpMyAdmin SQL Dump
-- version 2.6.1-pl3
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Jul 03, 2009 at 07:20 AM
-- Server version: 4.1.11
-- PHP Version: 5.0.4
--
-- Database: `tes`
--
-- --------------------------------------------------------
--
-- Table structure for table `biodatas`
--
CREATE TABLE `biodatas` (
`id` int(5) NOT NULL auto_increment,
`nama` varchar(50) collate latin1_general_ci NOT NULL default '',
`alamat` text collate latin1_general_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=2 ;
--
-- Dumping data for table `biodatas`
--
INSERT INTO `biodatas` VALUES (1, 'nmbmnbm', 'hkjhkjhjk');
model : mtes.php
<?
class MTes extends Model{
function MTes(){
parent::Model();
}
function TampilData($namaTable){
$query = $this->db->get($namaTable);
return $query;
}
function TampilDataWhere($namaTable, $namaWhere){
$this->db->where('id', $namaWhere);
$query = $this->db->get($namaTable);
return $query;
}
function Edit($namaTable, $namaWhere, $fields){
$this->db->where('id', $namaWhere);
$this->db->update('mytable', $fields);
}
}
?>
controller : tes.php
<?
class Tes extends Controller{
function Tes(){
parent::Controller();
$this->load->helper('url');
$this->load->helper('form');
}
function index(){
$this->load->model('MTes');
$data['hasil'] = $this->MTes->TampilData('biodatas');
$this->load->view('v_tampil', $data);
}
function edit(){
$this->load->model('MTes');
$data['hasil'] = $this->MTes->TampilDataWhere('biodatas', $this->uri->segment(3));
$this->load->view('v_edit', $data);
}
function proc_edit(){
$this->load->model('MTes');
$array = array(
'nama' => $_POST[txt_nama],
'alamat' => $_POST[txt_alamat]
);
$this->MTes->Edit('biodatas', $this->uri->segment(3), $array);
redirect('tes/index/');
}
}
?>
views: v_tampil.php
New Document
<? foreach($hasil->result() as $row): ?>
<?=$row->id?>
<?=$row->nama?>
<?=$row->alamat?>
<?=anchor('tes/edit/'.$row->id, 'Edit')?>
<?=anchor('tes/delete/'.$row->id, 'Delete')?>
<? endforeach; ?>
views : v_edit.php
New Document
uri->segment(3)?>">
<? foreach($hasil->result() as $row): ?>
Makasih seelumnya
Nama
nama?>"/>
Alamat
<?=$row->alamat?>
<? endforeach; ?>
--
untuk codeigniter, ada baiknya untuk add/edit menggunakan library Form Validation sekaligus, supaya lebih baik, sekaligus menghemat controller, jadi untuk proses dan menampilakn form-nya cukup di 1 controller, kodenya sebagai berikut :
controller : tes.php
NB : ganti controller edit saja dengan kode di bawah ini
<?php
function edit(){
$id=$this->uri->segment(3);
$this->load->database();
$this->load->model('MTes');
$this->load->library('form_validation');
//cuma contoh validasi aja, untuk lengkapnya bisa baca di user guide codeigniter
$this->form_validation->set_rules('txt_nama', 'Nama', 'required');
$this->form_validation->set_rules('txt_alamat', 'Alamat', 'max_length[255]');
//jika gagal validasi, atau load form pertama kali
if ($this->form_validation->run() == FALSE ){
if(empty($id)) $id=$this->input->post('id');
$data['hasil'] = $this->MTes->TampilDataWhere('biodatas', $id);
$data['id']=$id;
$this->load->view('v_edit', $data);
}
//jika telah lewat validasi
else{
$id=$this->input->post('id');
$data = array(
'nama' => $this->input->post('txt_nama'),
'alamat' => $this->input->post('txt_alamat')
);
$this->db->where('id', $id);
$this->db->update('biodatas', $data);
redirect('tes/index/');
}
}
?>
di view v_edit.php :
<?php
$fetch=$hasil->row();
echo validation_errors(); //tampilkan error
echo form_open_multipart('tes/edit', '').
form_hidden('id',$id).
form_label('Nama', 'txt_nama').
form_input('txt_nama',$fetch->nama).
form_label('Alamat', 'txt_alamat').
form_input('txt-alamat',$fetch->alamat).
form_submit('submit', 'Submit');
?>
solusi????
udh ktmu lum solusinya..,???
saia jg pendatang baru CI ne..,mo bkin add,edit delete jg..,!!tp ngk isa2x editnya...,hehehhee
makasih bos :D
makasih bos :D