HiveBrain v1.2.0
Get Started
← Back to all entries
patternjavascriptMinor

Loading content in page via jQuery

Submitted by: @import:stackexchange-codereview··
0
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:

// 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:

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.