patternjavascriptMinor
Loading content in page via jQuery
Viewed 0 times
jqueryviapageloadingcontent
Problem
I'm doing a website in CodeIgniter and I'm loading the content page via jQuery, but I don't know if this is a good practice or not. Could I improve it?
jQuery:
Controller:
View:
jQuery:
// Another question here: how can I group the repeated code in a function:
$(function() {
var control = '../Indoamericana/Intranet/index/Proceso/';
var loadPage = function(page){
$(".page-content").load(page);
};
$("#gestion_directiva").click(function(event) {
var process = 1;
loadPage(control + process);
});
$("#gestion_calidad").click(function(event) {
var process = 2;
loadPage(control + process);
});
$("#gestion_academica").click(function(event) {
var process = 3;
loadPage(control + process);
});Controller:
/**
* index();
*
* funcion que carga la información del proceso en la intranet
* @param String $process Identificador del proceso a cargar
* @return Vista del proceso indicado
*/
public function index($process, $idProcess){
$data['data'] = $this->intranet_model->getProcessInfo($idProcess);
$data['member'] = $this->intranet_model->getMembers($idProcess);
$data['proceso'] = 'GI7';
$route = '/Modules/Intranet/';
$route .= $process;
$this->load->view($route, $data);
}View:
name ?>
Página Principal
Intranet
name ?>
Solution
You might already know this but you can add a library class called 'template' it allows you to make a kind of a masterpage where you can load all different php files, for example your header - content - footer or anything else, seperately into one page.
Your controller will look like this for example:
Read more at http://ellislab.com/codeigniter%20/user-guide/libraries/parser.html
It's really use to use once you know how it's done.
For example you could use for every page the same navigation but another index and header.
The masterpage looks like this:
The last thing you need to do is search for the library file on the net upload it and autoload the library in your configs, file: autoload or just in the constructor of your controller. I recommend autoloading the template library because you normally use it at every end of a controller to make the full view.
Your controller will look like this for example:
public function example() {
$partials = array('header' => 'header', 'navigation' => 'navigation', 'content' => 'content');
$this->template->load('masterpage.php', $partials);
}Read more at http://ellislab.com/codeigniter%20/user-guide/libraries/parser.html
It's really use to use once you know how it's done.
For example you could use for every page the same navigation but another index and header.
The masterpage looks like this:
The last thing you need to do is search for the library file on the net upload it and autoload the library in your configs, file: autoload or just in the constructor of your controller. I recommend autoloading the template library because you normally use it at every end of a controller to make the full view.
Code Snippets
public function example() {
$partials = array('header' => 'header', 'navigation' => 'navigation', 'content' => 'content');
$this->template->load('masterpage.php', $partials);
}<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<?php echo $navigation; ?>
<?php echo $header; ?>
<?php echo $content; ?>
<div id="footer">
<div class="container">
</div>
</div>
</body>
</html>Context
StackExchange Code Review Q#37861, answer score: 2
Revisions (0)
No revisions yet.