Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
651 views

How To Create Chart Using Codeigniter and Morris

This document provides steps to create charts using CodeIgniter and Morris.js. It discusses: 1) Preparing necessary files like CodeIgniter, jQuery, Morris.js and Raphael.js 2) Creating a database and table to store sample data 3) Inserting sample data into the table 4) Configuring CodeIgniter files like autoload.php, config.php, and database.php 5) Creating a model to retrieve data from the database 6) Creating a controller to load the model and view 7) Loading a view to display the chart

Uploaded by

Abdul Syukur
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
651 views

How To Create Chart Using Codeigniter and Morris

This document provides steps to create charts using CodeIgniter and Morris.js. It discusses: 1) Preparing necessary files like CodeIgniter, jQuery, Morris.js and Raphael.js 2) Creating a database and table to store sample data 3) Inserting sample data into the table 4) Configuring CodeIgniter files like autoload.php, config.php, and database.php 5) Creating a model to retrieve data from the database 6) Creating a controller to load the model and view 7) Loading a view to display the chart

Uploaded by

Abdul Syukur
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 22

How To Create Chart Using

Codeigniter and Morris.js


 SEPTEMBER 27, 2018
 Want to know how to create chart using codeigniter and morris.js?

 Then you are in the right place.

 Because today, I will share with you how to create chart using

codeigniter and morris.js step by step.

 Let’s get start it.

 STEP 1. PREPARATION
 This is important!

 If you missed this step, it means you missed the whole of this tutorial.

 Good preparation will determine your success following this tutorial.

The better your preparation, the more likely you will succeed in

following this tutorial.

 Do not skip this step, though it feels complex.


 So, what do you need to prepare?

 Here’s the list:

 1. Codeigniter

 Codeigniter is the main php framework we will use in this tutorial. If

you do not have it yet, please download it at the official

website: www.codeigniter.com

 2. Jquery

 Jquery is a javascript library that serves to help make it easier to

manipulate html elements.

 If you don't have it yet, please download it on the official

website: www.jquery.com

 3. Morris.js

 Morris.js is a javascript library to make it easier to create good-

looking charts.

 If you don't have it yet, please download it on the official

website: http://morrisjs.github.io/morris.js/
 4. Raphael.js

 Morris.js require raphael.js, so, we need raphael.js.

 Please visit the following url to get raphael.js:

 https://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js

 Then select all the codes (Ctrl +A) then copy and save with the

name raphael-min.js.

 STEP 2. CREATE DATABASE AND


TABLE
 Create a database named chart_db.

 To create a database, you could executing the following query:

1 CREATE DATABASE chart_db;

 Then create a table named "account" with the structure like the

picture below:

 To create a table with a structure like the picture above, you could

executing the following query:

1
CREATE TABLE account(
2 id INT(11) PRIMARY KEY AUTO_INCREMENT,
3 year YEAR(4),

4 purchase INT(11),

5 sale INT(11),

profit INT(11)
6
)ENGINE=INNODB;
7

 STEP 3. INSERT SOME DATA


 Insert some data into the “account” table by executing the following

query:

1 INSERT INTO account (year,purchase,sale,profit) VALUES


2 ('2013','2000','3000','1000'),
3 ('2014','4500','5000','500'),

4 ('2015','3000','4500','1500'),

5 ('2016','2000','3000','1000'),

('2017','2000','4000','2000'),
6
7 ('2018','2200','3000','800'),

8 ('2019','5000','7000','2000');

 The query above will input 7 records data into the ”account” table.

 Like the picture below:

 STEP 4. CODEIGNITER INSTALLATION


 Extract codeigniter that has been downloaded earlier to www folder

(if you use wampserver) or htdocs (if you use XAMPP).

 Because I use wampserver. So, I extract it to c:/wamp/www/

 And then, rename codeigniter project to be chart.

 Like the picture below:


 Open the chart folder and the create new folder

named "assets" parallel to the application and system folders, then

create the css and js folder inside the assets folder.

 And then copy the morris.css file into the css folder and copy

the jquery.min.js, morris.min.js, and raphael-min.js files into

the js folder.

 Pay attention to the following picture for more details:


 STEP 5. CODEIGNITER
CONFIGURATION
 Next step is the configuration on the codeigniter.

 Here are some files you need to configure:

 1. Autoload.php

 To configure the autoload.php, please open the folder:

 application/config/autoload.php

 like this:

 Open autoload.php using text editor like Notepad++ or Sublime Text.


 And then find the code below:

1 $autoload['libraries'] = array();

2 $autoload['helper'] = array();

 Set to be like this:

1 $autoload['libraries'] = array('database');

2 $autoload['helper'] = array('url');

 2. Config.php

 To configure the config.php, please open the folder:

 application/config/config.php

 like the following picture:


 Open config.php file using text editor, and then find the code below:

1 $config['base_url'] = '';

 And then set to be like this:

1 $config['base_url'] = 'http://localhost/chart/';

 3. Database.php

 To configure the database.php, please open the folder:

 application/config/database.php

 like the picture below:


 Open database.php file using text editor, and then find the code

below:

1 $active_group = 'default';

2 $query_builder = TRUE;

4 $db['default'] = array(

5 'dsn' => '',

'hostname' => 'localhost',


6
'username' => '',
7
'password' => '',
8
'database' => '',
9
'dbdriver' => 'mysqli',
10
'dbprefix' => '',
11 'pconnect' => FALSE,
12 'db_debug' => (ENVIRONMENT !== 'production'),

13 'cache_on' => FALSE,

14 'cachedir' => '',


15 'char_set' => 'utf8',

16 'dbcollat' => 'utf8_general_ci',

'swap_pre' => '',


17
'encrypt' => FALSE,
18
'compress' => FALSE,
19
'stricton' => FALSE,
20
'failover' => array(),
21 'save_queries' => TRUE
22 );

23

24

 And then Set to be like this:

1 $active_group = 'default';

$query_builder = TRUE;
2

3
$db['default'] = array(
4
'dsn' => '',
5
'hostname' => 'localhost',
6
'username' => 'root',
7
'password' => '',
8 'database' => 'chart_db',
9 'dbdriver' => 'mysqli',
10 'dbprefix' => '',

11 'pconnect' => FALSE,

12 'db_debug' => (ENVIRONMENT !== 'production'),

'cache_on' => FALSE,


13
'cachedir' => '',
14
'char_set' => 'utf8',
15
'dbcollat' => 'utf8_general_ci',
16
'swap_pre' => '',
17 'encrypt' => FALSE,
18 'compress' => FALSE,
19 'stricton' => FALSE,

20 'failover' => array(),

'save_queries' => TRUE


21
);
22

23

24

 4. Routes.php

 To configure the routes.php, please open the folder:

 application/config/routes.php

 Like the picture below:


 Open routes.php file using text editor, and then find the code below:

1 $route['default_controller'] = 'welcome';

 And then set to be like this:

1 $route['default_controller'] = 'chart';


 STEP 6. MODEL
 The Model represents your data structures. Typically your model

classes will contain functions that help you retrieve, insert, and

update information in your database.

 In this case we just need one model, that is Chart_model.php

 So, create a model file models/Chart_model.php by the following

the code below:

1
<?php
2
class Chart_model extends CI_Model{
3

4 //get data from database


5 function get_data(){

6 $this->db->select('year,purchase,sale,profit');

7 $result = $this->db->get('account');

return $result;
8
}
9

10
}
11

 In the Chart_model model above there is just one function, that

function get_data().

 Function get_data() is used to display all data from the "account"

table in the database.


 In this case, we only display fields: year, purchase, sale, and profit.

 STEP 7. CONTROLLER
 The Controller serves as an intermediary between the Model, the

View, and any other resources needed to process the HTTP request

and generate a web page.

 In this case we just need one controller, that is Chart.php

 So, create a controller file controllers/Chart.php by the following the

code below:

1 <?php

2 class Chart extends CI_Controller{

3 function __construct(){

parent::__construct();
4
//load chart_model from model
5
$this->load->model('chart_model');
6
}
7

8
function index(){
9
$data = $this->chart_model->get_data()->result();
10 $x['data'] = json_encode($data);
11 $this->load->view('chart_view',$x);

12 }

13 }
14

 On the Chart controller above, there are two functions. Function

__connstruct() and function index().

 Function __constrsuct() is used as a constructor, while

the function index() is the function that is called when

the Chart controller is run.

 In the function index(), we call the

function get_data() from Chart_model model.

 Then encoded the output to be JSON object by using

the json_encode method.

 Then load the view "chart_view" by bringing an array "data".

 STEP 8. VIEW
 The View is the information that is being presented to a user.

 A View will normally be a web page, but in CodeIgniter, a view can

also be a page fragment like a header or footer. It can also be an

RSS page, or any other type of “page”.


 In this case we just need one view, that is chart_view.php

 So, create a view file views/chart_view.php by the following the

code below:

1
<!DOCTYPE html>
2
<html lang="en">
3
<head>
4
<meta charset="utf-8">
5 <title>Chart using codeigniter and morris.js</title>
6 <link rel="stylesheet" href="<?php echo base_url().'assets/css/morris.css'?>">
7 </head>

8 <body>

9 <h2>Chart using Codeigniter and Morris.js</h2>

10
<div id="graph"></div>
11

12
<script src="<?php echo base_url().'assets/js/jquery.min.js'?>"></script>
13
<script src="<?php echo base_url().'assets/js/raphael-min.js'?>"></script>
14
<script src="<?php echo base_url().'assets/js/morris.min.js'?>"></script>
15
<script>
16 Morris.Bar({
17 element: 'graph',
18 data: <?php echo $data;?>,

19 xkey: 'year',

20 ykeys: ['purchase', 'sale', 'profit'],

labels: ['Purchase', 'Sale', 'Profit']


21
});
22
</script>
23
</body>
24
</html>
25
26

 In the view chart_view, we call morris.css, jquery.min.js, raphael-

min.js, and morris.min.js files.

 To call the morris.css file, we use the following code:

1 <link rel="stylesheet" href="<?php echo base_url().'assets/css/morris.css'?>">

 To call the jquery.min.js, raphael-min.js,

and morris.min.js files, we use the following code:

1 <script src="<?php echo base_url().'assets/js/jquery.min.js'?>"></script>

2 <script src="<?php echo base_url().'assets/js/raphael-min.js'?>"></script>

3 <script src="<?php echo base_url().'assets/js/morris.min.js'?>"></script>

 To display a chart, we use the following code:

1
<script>
2
Morris.Bar({
3 element: 'graph',
4 data: <?php echo $data;?>,

5 xkey: 'year',

6 ykeys: ['purchase', 'sale', 'profit'],

labels: ['Purchase', 'Sale', 'Profit']


7
});
8
</script>
9

 The above code will display a bar chart on the graph element. Where

the graph is the ID of an HTML element where the chart wants to be

displayed.
 In this case, I want to display the chart into a div tag that

has id="graph" like the following code:

1 <div id="graph"></div>

 STEP 9. TESTING
 To do the test, please open your browser and type the following URL:

 http://localhost/chart/

 if it's running well, it will look like the following picture:

 Awesome right?

 You can also change the style from the chart above to a line

chart or area chart.


 To change the style of chart, it's quite simple just change the Bar to

be Line.

 Like this:

1
<script>
2
Morris.Bar({
3 element: 'graph',
4 data: <?php echo $data;?>,

5 xkey: 'year',

6 ykeys: ['purchase', 'sale', 'profit'],

labels: ['Purchase', 'Sale', 'Profit']


7
});
8
</script>
9

 Change to be like this:

1
<script>
2
Morris.Line({
3 element: 'graph',
4 data: <?php echo $data;?>,

5 xkey: 'year',

6 ykeys: ['purchase', 'sale', 'profit'],

labels: ['Purchase', 'Sale', 'Profit']


7
});
8
</script>
9

 Then visit the following URL to see the changes:

 http://localhost/chart/
 if it's running well, it will look like the following picture:

 Beside that, You can also change the style to Area chart just by

changing Line to Area.

 Like this:

1
<script>
2
Morris.Area({
3 element: 'graph',
4 data: <?php echo $data;?>,

5 xkey: 'year',

6 ykeys: ['purchase', 'sale', 'profit'],

labels: ['Purchase', 'Sale', 'Profit']


7
});
8
</script>
9

 Then visit the following URL to see the changes:

 http://localhost/chart/
 if it's running well, it will look like the following picture:

 That’s it!.

 CONCLUSION
 In today's tutorial is about how to create a chart with codeigniter and

morris.js.

 In this tutorial, you have learned how to create charts with codeigniter

and morris.js step by step.

 Not only that, you have also learned how to change the style of chart

from bar chart to line chart and chart area.

You might also like