Welcome Guest, Not a member yet? Register   Sign In
why is my html fragment floating to the top of the page?
#1

[eluser]bill19[/eluser]
Hello everyone,

I am working with codeigniter 2.1 and twitter bootstrap to develop a site. I used php's domdocument to generate some dynamic html which I want to insert into a page.Unfortunately , the php generated fragment is now the first thing on the page when I look at the html source:

Code:
<div><h2>Available Now:</h2></div>
mod: 1mod: 2<div class="row"><div class="span6"><h2>13 mole st</h2><p>Fugazi</p><p><a class="btn" href="http://localhost/bootstrap1/index.php/template_controller/1">Learn More &raquo;</a></p></div><div class="span6"><h2>11 mole st</h2><p>Fugazi</p><p><a class="btn" href="http://localhost/bootstrap1/index.php/template_controller/2">Learn More &raquo;</a></p></div></div>

---------generated fragment is above

<!DOCTYPE html>
&lt;html lang="en"&gt;&lt;head>

I actually want to insert this further down the page, after the hero-unit view as you can see in my controller code.

my controller is as follows:

Code:
public function index()
        {
              
              
                $this->load->view('header'); // static HTML including doctype declaration
                $this->load->view('navbar'); // static HTML
                $this->load->view('hero_unit'); // static HTML
              
                $this->currentItems();  // my generated HTML ( which we are discussing )
            
                $this->load->view('footer'); // static HTML
                      
              
        }

What am I doing wrong?

Thanks,

Bill
#2

[eluser]Matalina[/eluser]
Are you echoing things in $this->currentItems?
#3

[eluser]bill19[/eluser]
Yes,

Here's the code that generates a portion of the created html:

Code:
$dom = new DOMDocument('1.0'); //Create new document with specified version number
          $div= $dom->createElement('div') ;  
             $dom->appendChild($div);  
             $h3=$dom->createElement('h2','Available Now:');
             $div->appendChild($h3);
              echo $dom->saveHTML();

Its within currentItems()

Thanks for looking at it,

Bill
#4

[eluser]Matalina[/eluser]
You can't echo in a controller. You have to load a view if you want it to display correctly with other views.
#5

[eluser]CroNiX[/eluser]
CI uses buffering for the output of views. So, if you have an echo somewhere that isn't in a view, those echos will appear before the final output of the buffered views as it will output that first and then dump the contents of the buffer.
#6

[eluser]bill19[/eluser]
Thanks for explaining that. I saved the output into an array and passed it into my view to echo out there.

Best regards,

Bill




Theme © iAndrew 2016 - Forum software by © MyBB