internal php navigation

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
diamondazza
Forum Newbie
Posts: 6
Joined: Mon Oct 20, 2003 4:06 am

internal php navigation

Post by diamondazza »

i have my index page set up with the menu like this:
<?
switch ($page) {
case "guide":
include('guide/guide.inc');
break;
case "bands":
include('db/index.php');
break;
case "ticks":
include('ticks/ticks.php');
break;
case "chat":
include('bands/bands.php');
break;
default:
include('content.php');
}
?>
when i click on "guide" it loads guide.inc into the browser within the index page, bit like a iframe tag, now on the guide.inc page i have another seperate menu. my prob is this, when i click on a menu item in the guide.inc page the index page defualts back to the content.php, i want it to be able to load it within the index page.
-------------------
guide.inc
search || whatshot || lastweek || <------guide.inc menu
-------------------
the links are set up like this:
a href="index.php?page=search.php">search
a href="index.php?page=hot.php">whatshot
etc etc...
basically i want it to act a bit like the iframe tag
i hope this makes sence..please help!
thanx.
Gen-ik
DevNet Resident
Posts: 1059
Joined: Mon Aug 12, 2002 7:08 pm
Location: London. UK.

Post by Gen-ik »

Use a _session to store which page there user is on.
Here is an example.......

Code: Select all

<?
if(!isset($_SESSION["page"]))
{
    //set's up the page var in the _session if
    //it hasn't been done already.

    $_SESSION["page"] = "content"
}

if(isset($_GET["page"]))
{
    //checks if someone wants to move to another
    //page from the main menu and changes the
    //_session var if they do.

    $_SESSION["page"] = $_GET["page"];
}
?>

<html>
<body>

<a href="index.php?page=guide>Guide</a>
<a href="index.php?page=bands>Bands</a>
<a href="index.php?page=ticks>Ticks</a>
<a href="index.php?page=chat>Chat</a>
<a href="index.php?page=content>Content</a>

<?
switch ($_SESSION["page"]) { 
case "guide": 
include('guide/guide.inc'); 
break; 
case "bands": 
include('db/index.php'); 
break; 
case "ticks": 
include('ticks/ticks.php'); 
break; 
case "chat": 
include('bands/bands.php'); 
break; 
default: 
include('content.php'); 
} 
?>

</body>
</html>
diamondazza
Forum Newbie
Posts: 6
Joined: Mon Oct 20, 2003 4:06 am

newbie

Post by diamondazza »

i messed about a bit but got a parse error...im a new cumer to this php thing but have some understanding of it. anyways all i got was
a parse error on line 8 which is
==>

Code: Select all

<?php
<? 
if(!isset($_SESSION["page"])) 
{ 
    //set's up the page var in the _session if 
    //it hasn't been done already. 

    $_SESSION["page"] = "content" 
} //----this line right here

if(isset($_GET["page"])) 
{ 
    //checks if someone wants to move to another 
    //page from the main menu and changes the 
    //_session var if they do. 

    $_SESSION["page"] = $_GET["page"]; 
} 
?>
this has been givin me the <span style='color:blue' title='I&#39;m naughty, are you naughty?'>smurf</span> all week im thinkin about just using the iframe tag instead but ive been told its a simple setup so what am i doing wrong?thanx in advance ey!@
?>
User avatar
volka
DevNet Evangelist
Posts: 8391
Joined: Tue May 07, 2002 9:48 am
Location: Berlin, ger

Post by volka »

forgot a ; after

Code: Select all

$_SESSION["page"] = "content"
Are those two php tag openings at the beginning of the code snippet really in your code?
diamondazza
Forum Newbie
Posts: 6
Joined: Mon Oct 20, 2003 4:06 am

riiiight..well...um

Post by diamondazza »

well the page is loading and i click on the guide link and the guide page is loaded into the middle of my designed page, the guide page has links on it but when i click on one of them the index page just reloads the default content. i have applied the code properly am i missing something?


this is the guide.php page
----------------------------------------
<?php
$navlist = array (
"names" => array("home", "find", "sales", "services", "support", "about"),
"url" => array("/index.php", "index.php?page=guide/find.html", "/sales.html", "/services.html", "/support.html", "/about.html")
);
if ($argc != 0)
{
$uriarray = explode("?", $REQUEST_URI);
$REQUEST_URI = $uriarray[0];
}
$navcount = sizeof($navlist[names]);
for ($i = 0; $i < $navcount; $i++)
{
if ($REQUEST_URI != $navlist[url][$i])
{
echo ("&raquo; <a class=\"services\" href=\"");
echo ($navlist[url][$i]);
echo ("\">");
echo ($navlist[names][$i]);
echo ("</a> ");
}
}
?>
-----------------------------
does it matter that the guide.php is stored in a folder or should it be the the same page as the index php page?
--------if its all confusing ill up loasd it to my server and you can have a look for yaswelf if ya want...i really do appreciate all this help.THaNx!!
diamondazza
Forum Newbie
Posts: 6
Joined: Mon Oct 20, 2003 4:06 am

oh...

Post by diamondazza »

heres is the web page link :
http://www.modnet.com.au/~aaron/gmc/index.php
click on gig-guide then click on "find".....SEEE! it loads the defualt page when i want the links to load in that place!!![/url]
User avatar
volka
DevNet Evangelist
Posts: 8391
Joined: Tue May 07, 2002 9:48 am
Location: Berlin, ger

Post by volka »

It's a bit strange anyway. Why do you parse the request string by yourself? php already did it for you when the script runs.
index.php?page=guide/find.html => $_GET['page'] == 'guide/find.html'
if you make $navlist a one-dimensional list using both keys and values to store your information all you have to do is to test wether $_GET['page'] is set and its value is a key in $navlist. Then remove that element from the array and print out the remaining elements.
(of course there are other ways, its just an example)
diamondazza
Forum Newbie
Posts: 6
Joined: Mon Oct 20, 2003 4:06 am

aarrgghhh

Post by diamondazza »

its driving me nuts!!!!!! the above code is just an example basically i want all links when clicked on too load in the middle of the page between the header, menu and footer. i have already set the main side menu to do this. but when any links that are click on in the content area they load the defualrt content instead

http://www.modnet.com.au/~aaron/gmc/index.php

check it out for yaself.. click gig-guide then find...it should load another page in the same area called find.html but it loads default content.php
which is the index page!??
??????????????????????????????????????????????????????????????????????
it should be simple but its got me stumped![/url]
Post Reply