| PHP Error Message |
Warning: Invalid argument supplied for foreach() in /home/a3178292/public_html/article.php on line 213
CodeIgniter - Form: Creating Beautiful Form Code
CodeIgniter Form Step By Step Tutorial - Part 9: We have learned create form at previous post. Now, we will modify that code in order to more clean and beautiful.
First, open again your "books_input.php" within views. Update like following code:
<html>
<head>
<link rel="stylesheet" type="text/css"
href="<?php echo "$base/$css"?>">
</head>
<body>
<div id="header">
<? $this->load->view('books_header'); ?>
</div>
<div id="menu">
<? $this->load->view('books_menu'); ?>
</div>
<? echo form_open('books/input'); ?>
<? echo $title .' : '.form_input($ftitle); ?></br>
<? echo $author .' : '.form_input($fauthor); ?></br>
<? echo $publisher .' : '.form_input($fpublisher); ?></br>
<? echo $year .' : '.form_dropdown('year',$years); ?></br>
<? echo $available .' : '.form_checkbox($favailable); ?></br>
<? echo $summary .' : '.form_textarea($fsummary); ?></br>
<? echo form_submit('mysubmit','Submit!'); ?>
<? echo form_close(); ?>
<div id="footer">
<? $this->load->view('books_footer'); ?>
</div>
</body>
</html>
You can see such as line 15. Before, we write like this
form_input('title');
Now, we write like this:
form_input($ftitle);
Why we do this? Because we want to control parameters for <input> tag. We will add parameters like this
$data['ftitle'] = array('name'=>'title',
'size'=>30
);
Can you see what I mean? Ok, for more clear, update your model like following code:
<?
class books_model extends Model{
function books_model(){
parent::Model();
$this->load->helper('url');
}
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['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['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;
}
}
?>
See line 29 and rest. You will understand what I mean. It is more simple and clearly to write HTML code.
