I have a site built with Codeigniter where there are a lot of pages and directories.
Let's say the site name is www.example.com
(this is the index page).
If the user goes to another page, for example clicking on the "about" link, how can I make the site name not change in the address bar for all pages?
That is a bad idea if for nothing else then that it prevents users from being able to bookmark your site.
There are two ways to do this, however, if you are intent on this direction (and I really do suggest that you turn back now before it is too late). You can load everything in an iframe:
<!-- your site might look like this then -->
<html>
<body><iframe src="http://path.to.your.real.site" />
</html>
And the src property would be directing to some other URL which actually has all of the dynamic URL's.
Your other option is AJAX. That is really too long and complicated for an example though.
Not sure about codeigniter bu you can do this in plain php as follows:
- Your url always maps to a single "facade" php function (maybe even "index.php").
- In your page navigation you always "POST" from a form. Never use "href="
- In the FORMs you have a couple of hidden fields which record the current and requested pages.
- When your php "facade" runs you examine the "current" and "requested" form fields and call the appropriate code to render the "requested" page.
As an alternative you can use "cookies" instead of hidden form fields and some simple javascript to set the value of the "requested" cookie.
Use FRAMESET OR Use Ajax
<FRAMESET ROWS="100%,*" BORDER=0 FRAMEBORDER=0 FRAMESPACING=0>
<FRAME NAME="top" SRC="/Login .aspx or .php" NORESIZE>
</FRAMESET>