Knop om een include te wisselen
Ik heb een menu gemaakt in HTML, en een menu in Flash. Nu wil ik dat gebruikers zelf kunnen wisselen tussen deze twee menu's. Ik include de menu met PHP. Hoop dus een knop te kunnen maken, waarbij het volgende gebeurt:
van includes/menuf.php
naar includes/menuh.php
en andersom. Is dit mogelijk? En zo ja: hoe (ik dacht zelf met JavaScript)? (ik snap dat de page dan moet reloaden)
Ps. wat dus niet de bedoeling is om twee websites te hebben: een met een html menu, en een met een flash menu, en deze te laten wisselen. Het gaat hier puur om het menu dat moet wisselen.
Alvast bedankt!
Je kan dat doen met een session.
Is het misschien gemakkelijker om 'hidden content' erin te zetten, en met een knop de ene te laten verbergen, en de ander zichtbaar te maken? (zodat de pagina ook niet hoeft te reloaden?)
Als je een pagina niet wilt reloaden zul je moeten kijken naar JavaScript, en dan in het speciaal naar AJAX. jQuery (JS libary) heeft een zeer goede intergratie met AJAX.
Code (php)
nu moet je enkel als menu 1 word weergegeven een session maken die menu noemt en om menu 2 weer te geven moet je de session 1 verwijderen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
switch($_GET['page'])
{
case 'home' :
include 'home.php';
break;
case 'about' :
include 'about.php';
break;
case 'contact' :
include 'contact.php';
break;
default :
include 'home.php'; // Always set a default
}
?>
<a href="index.php?page=home">Homepagina</a>
<a href="index.php?page=about">About pagina</a>
<a href="index.php?page=contact">Contact pagina</a>
switch($_GET['page'])
{
case 'home' :
include 'home.php';
break;
case 'about' :
include 'about.php';
break;
case 'contact' :
include 'contact.php';
break;
default :
include 'home.php'; // Always set a default
}
?>
<a href="index.php?page=home">Homepagina</a>
<a href="index.php?page=about">About pagina</a>
<a href="index.php?page=contact">Contact pagina</a>
Hij werkt, maar wel met een work-arround. Ik heb julie manieren geprobeert, kwam er niet helemaal uit. Verder nog awt rond gezocht op het internet. Ik kom momenteel uit op het volgende:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!-- script voor roteren flash / html menu -->
<script type="text/javascript">
var t=setTimeout("unhide('htmlmenu')",1);
var t=setTimeout("unhide('htmlmenu')",1);
var t=setTimeout("unhide('flashmenu')",1);
function unhide(divID) {
var item = document.getElementById(divID);
if (item) {
if (item.className=='unhidden')
{item.className='hidden'}
else
{item.className='unhidden'}
}
}
function openOtherLinks(id1, id2) {
var link1 = document.getElementById(id1);
var link2 = document.getElementById(id2);
if(!link1.href || !link2.href)
return;
document.location.replace(link2.href);
document.location.replace(link1.href);
}
</script>
</head>
<body id="page4">
<a href="javascript:openOtherLinks('link1', 'link2')"><img src="..." alt="..." /></a>
<a id="link1" href="javascript:unhide('flashmenu')">Link 1</a>
<a id="link2" href="javascript:unhide('htmlmenu')">Link 2</a>
<!-- einde script -->
<script type="text/javascript">
var t=setTimeout("unhide('htmlmenu')",1);
var t=setTimeout("unhide('htmlmenu')",1);
var t=setTimeout("unhide('flashmenu')",1);
function unhide(divID) {
var item = document.getElementById(divID);
if (item) {
if (item.className=='unhidden')
{item.className='hidden'}
else
{item.className='unhidden'}
}
}
function openOtherLinks(id1, id2) {
var link1 = document.getElementById(id1);
var link2 = document.getElementById(id2);
if(!link1.href || !link2.href)
return;
document.location.replace(link2.href);
document.location.replace(link1.href);
}
</script>
</head>
<body id="page4">
<a href="javascript:openOtherLinks('link1', 'link2')"><img src="..." alt="..." /></a>
<a id="link1" href="javascript:unhide('flashmenu')">Link 1</a>
<a id="link2" href="javascript:unhide('htmlmenu')">Link 2</a>
<!-- einde script -->
Werkt met een timer. Hierbij laad hij 2x html menu, en 1x flash menu. Als ik de 2x htmlmenu eruit haal, werkt het niet meer zoals het hoort... Iemand nog ideeën hiervoor?
Gewijzigd op 06/07/2011 01:13:16 door Bjorn Hoogeveen