Well, there are many ways to load content into a DIV. The simplest, of course, is to refresh the page with new options, or call itself, and let your load process handled filling in whatever info you want. Another way is to use AJAX to pull info and “refresh” a DIV with new data.
I have been experimenting with the “Bootstrap” library. Bootstrap has many features that are awesome to view and they flow dynamically. If you want something new, you might like to peek at that.
Here is a link to it: http://getbootstrap.com/
But, to use it, sometimes you need to get a template for it. There are thousands. Here are some:
http://bootstrapthemes.quora.com/25-Awseome-Twitter-Bootstrap-Themes-For-Better-Bootstrap-Designs
Down that page about 3/4, there is one called Awesome. It has a lot of nice samples for setting up pages. Just the displays, of course, you have to program the content and database access. But, it is only $8.
Here is a live demo of it so you can see what it can do:
http://www.portnine.com/Themes/AwesomeAdmin/pricing.html
Now back to our talk. I use SESSION variables to hide the current page I am on. At the top of the page, I use PHP to load this and set up the page depending on this (these) variables. If the user selects a link or button (I like buttons over links, but…) to alter the view, it posts to itself and uses that form to reset the current page options which are read BEFORE the page loads. During the loading of the page, it changes menus, layouts, text and graphics to fit the options selected. One site I am working on shows two entire different sites depending on the user’s access levels. Works like a charm. This is my preferred way.
The other, loading items dynamically is a bit trickier, but, has a nice “flow” to it so it is attractive. This would use AJAX to load a PHP page with variables in a get or post manner and “fill” in a DIV with the new “stuff”. This can be done in many many ways. The downside is that the AJAX code is partially shown in the browser if someone looks at the page code. Of course, using SESSION variables, most items are hidden from noisy surfers. To explain how to do this, here is a site that does it nicely. Click on one of the cars in the middle and you should see “stuff” appear. Since this is actually loading a PHP page into a page, it just appears and can have full PHP code in it to access databases, streamline menus using SESSION variables, whatever you wish.
http://www.dynamicdrive.com/dynamicindex17/ajaxcontent.htm
Hope that gives you something to think about for a bit…