CodeIgniter Forums

Full Version: How to encapsulate view-components?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi,

I have two different views, both of them should display different tables. But both tables should be embedded within a common „tableFrame“ that has some JS-functionality.

Usually I would do that with different subTableClasses that extend a superTableClass (classical OOP).

Is there a way to say something like:
<div class=„tableFrame“><?php get_view_part(...)?>
<table> bla ... </table>
</div>

U know what I mean? :-)

Thanks in advance!

jellix
I'd probably write my own html helper() function.
Maybe this will help.
Put this code in both views that should display the table:
PHP Code:
<div class="tableFrame“>
<?php 
$this->load->view('embedded_viewfile');?>
</div> 
Where 'embedded_viewfile' is the name of the view that you want to embed.

You probably need to pass variables (the records) to the embedded view.
If you do that from the controller, you can make these variables global.
Before you load the 'container' views, do this:
PHP Code:
$data['records'] = ... // an array with records from a database table, collected by a query (e.g. in a model)
$this->load->vars($data['records']); 

In the embedded view, the $records array is available for displaying the data.
Thanks to both of you.
Now I understood the mechanic of loading views within views and the helper-concept is also very important. Just looking at it :-)