CodeIgniter Form Step By Step Tutorial - Part 17: At previous post, we talk about creating edit form. This form is normal when we sent a parameter get to show single data. But, when we didn't send any value, it raise error. Why?
Ok, try open form with http://localhost/CodeIgniter/index.php/books/input
Yes, you can guess what happen. We didn't declare two parameter: $fid and $fyear. We define when there is id at GET. See again following controller:
function input($id = 0){
$this->load->helper('form');
$this->load->helper('html');
$this->load->model('books_model');
if($this->input->post('mysubmit')){
$this->books_model->entry_insert();
}
$data = $this->books_model->general();
if((int)$id > 0){
$query = $this->books_model->get($id);
$data['fid']['value'] = $query['id'];
$data['ftitle']['value'] = $query['title'];
$data['fauthor']['value'] = $query['author'];
$data['fpublisher']['value'] = $query['publisher'];
$data['fyear']['value'] = $query['year'];
if($query['available']=='yes'){
$data['favailable']['checked'] = TRUE;
}else{
$data['favailable']['checked'] = FALSE;
}
$data['fsummary']['value'] = $query['summary'];
}
$this->load->view('books_input',$data);
}
So we must crate bait. I create it at model by add 2 line (13 & 14):
function general(){
$this->load->library('MyMenu');
$menu = new MyMenu;
$data['base'] = $this->config->item('base_url');
$data['css'] = $this->config->item('css');
$data['menu'] = $menu->show_menu();
$data['webtitle'] = 'Book Collection';
$data['websubtitle']= 'We collect all title of
books on the world';
$data['webfooter'] = '© copyright by step
by step php tutorial';
$data['fid']['value'] = 0;
$data['fyear']['value'] = 0;
$data['title'] = 'Title';
$data['author'] = 'Author';
$data['publisher'] = 'Publisher';
$data['year'] = 'Year';
$data['years'] = array('2007'=>'2007',
'2008'=>'2008',
'2009'=>'2009');
$data['available'] = 'Available';
$data['summary'] = 'Summary';
$data['forminput'] = 'Form Input';
$data['ftitle'] = array('name'=>'title',
'size'=>30
);
$data['fauthor'] = array('name'=>'author',
'size'=>30
);
$data['fpublisher'] = array('name'=>'publisher',
'size'=>30
);
$data['favailable'] = array('name'=>'available',
'value'=>'yes',
'checked'=>TRUE
);
$data['fsummary'] = array('name'=>'summary',
'rows'=>5,
'cols'=>30
);
return $data;
}
Our form become normal again.