Archief - PHP/JS: Roll-out menu

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

meRVy

Legacy Member
betreft deze site (login: tng, pwd: root)

Als je klikt op info komt er een menuutje, met paar links. Maar als je nu drukt op een link dan verdwijnt dat menu.
Komt doordat ik nieuwe pagina laad, maar het is niet echt de bedoeling.
Enige oplossing zou zijn:werken met iframes, maar dan moet ik dat voor alles doen, terwijl ik nu werk met includes.

Heeft er iemand een oplossing?

DarkBone

Legacy Member
Werken met de querystring & PHP.
Als op een link gedrukt wordt om een menuutje uit te klappen (en bij alle subelement van dat menu) geef je zoiets mee:

?submenu=info

In je PHP code controleer je op het al dan niet gezet zijn van deze variabele, is dit zo, dan toon je het submenu.

De links onder dat submenu zullen er dan zo uitzien:

?submenu=info&page=geschiedenis

Nadeel: extra pageloads

-----

Een andere mogelijkheid is om JavaScript cookies te laten zetten die aanduiden welke menu's uitgeklapt zijn.

meRVy

Legacy Member
dank!

aangezien ik momenteel nog ferm leek ben ik php zal ik me eerst daar dieper in moeten verdiepen. (tenzij ik ergens een premade scriptje vind)

orez

Legacy Member
PHP:
<?php
if ($_GET['menu'] == "crew") {
	$crew = "";
	$general = "none";
	$site = "none";
} elseif ($_GET['menu'] == "general") {
	$crew = "none";
	$general = "";
	$site = "none";
} elseif ($_GET['menu'] == "site") {
	$crew = "none";
	$general = "none";
	$site = "";
} else {
	$crew = "none";
	$general = "";
	$site = "none";
} 
?>

					<script type="text/javascript">showMenuToggle("General", "General")</script>
					<noscript>General</noscript>
					<table>
						<tr id="General" style="display: <?php printf($general); ?>;">
							<td>
								<img src="images/arrow.jpg" alt="&gt;" class="arrow"><a href="cpanel.php?c=home&menu=general">Home</a><br />
								<img src="images/arrow.jpg" alt="&gt;" class="arrow"><a href="cpanel.php?c=passw&menu=general">Change password</a><br />
								<img src="images/arrow.jpg" alt="&gt;" class="arrow"><a href="cpanel.php?c=editp&user=<?php printf($_SESSION['s_user']); ?>&menu=general">Edit Profile</a><br />
							</td>
						</tr>
					</table>
					<br />
					<script type="text/javascript">showMenuToggle("Crew", "Crew")</script>
					<noscript>Crew</noscript>
					<table>
						<tr id="Crew" style="display: <?php printf($crew);?>;">
							<td>
								<img src="images/arrow.jpg" alt="&gt;" class="arrow"><a href="cpanel.php?c=crewlist&menu=crew">List</a><br />
								<img src="images/arrow.jpg" alt="&gt;" class="arrow"><a href="cpanel.php?c=a_crewmember&menu=crew">Add crewmember</a><br />
								<img src="images/arrow.jpg" alt="&gt;" class="arrow"><a href="cpanel.php?c=c_news&menu=crew">News</a><br />
								<img src="images/arrow.jpg" alt="&gt;" class="arrow"><a href="cpanel.php?c=ac_news&menu=crew">Add news</a><br />
								<img src="images/arrow.jpg" alt="&gt;" class="arrow"><a href="cpanel.php?c=training&menu=crew">Training</a><br />
								<img src="images/arrow.jpg" alt="&gt;" class="arrow"><a href="cpanel.php?c=a_training&menu=crew">Add training</a><br />
								<img src="images/arrow.jpg" alt="&gt;" class="arrow"><a href="cpanel.php?c=c_sendmail&menu=crew">Send mail</a><br />
							</td>
						</tr>
					</table>
					<br />
					<script type="text/javascript">showMenuToggle("Site", "Site")</script>
					<noscript>Site</noscript>
					<table>
						<tr id="Site" style="display: <?php printf($site);?>;">
							<td>
								<img src="images/arrow.jpg" alt="&gt;" class="arrow"><a href="cpanel.php?c=news&menu=site">News</a><br />
								<img src="images/arrow.jpg" alt="&gt;" class="arrow"><a href="cpanel.php?c=a_news&menu=site">Add News</a><br />
								<img src="images/arrow.jpg" alt="&gt;" class="arrow"><a href="cpanel.php?c=events&menu=site">Events</a><br />
								<img src="images/arrow.jpg" alt="&gt;" class="arrow"><a href="cpanel.php?c=a_events&menu=site">Add event</a><br />
								<img src="images/arrow.jpg" alt="&gt;" class="arrow"><a href="cpanel.php?c=achievments&menu=site">Achievments</a><br />
								<img src="images/arrow.jpg" alt="&gt;" class="arrow"><a href="cpanel.php?c=a_achievments&menu=site">Add Achievment</a><br />
								<img src="images/arrow.jpg" alt="&gt;" class="arrow"><a href="cpanel.php?c=newsletter&menu=site">Newsletter</a><br />
								<img src="images/arrow.jpg" alt="&gt;" class="arrow"><a href="cpanel.php?c=members&menu=site">Members</a><br />
							</td>
						</tr>
					</table>

Javascriptje:

Code:
function showMenuToggle(name, displayname) {
	if(document.getElementById) {
		document.writeln('<span class="menutitle"><a href="javascript:toggleMenu(\'' + name + '\')">' +
		'<span id="hidelink" style="display:none;">' + displayname + '</span>' +
		'<span id="showlink">' + displayname + '</span>'
		+ '</a></span>');
	}
}

function toggleMenu(submenu) {
	var menu = document.getElementById(submenu);
	var showlink=document.getElementById('showlink');
	var hidelink=document.getElementById('hidelink');
	if(menu.style.display == 'none') {
		menu.style.display = '';
		hidelink.style.display='none';
		showlink.style.display='';
	} else {
		menu.style.display = 'none';
		hidelink.style.display='';
		showlink.style.display='none';
	}
}

Denk dat het dit soort menuutje is dagge bedoeld :)

Zoals ge ziet include ik mijn contentgedeelte in cpanel.php, en geef ik telkens de state mee van in welke onderdeel van de navigatie ik mij bevind. Als da onderdeel geselecteerd is dan set em de css style op visible of nie visible

display: "" of display: none

hiermee hebde wel, alsk in e submenu van crew zit, en ik selecteer daar ne link, dan klapt de rest toe. en blijft alleen crew openstaan.

nuja soit, khoop daj hier iets aan hebt :)

maT'

Legacy Member
Even tussendoor, maar dit kan makkelijker :)
PHP:
<?php
if ($_GET['menu'] == "crew") {
    $crew = "";
    $general = "none";
    $site = "none";
} elseif ($_GET['menu'] == "general") {
    $crew = "none";
    $general = "";
    $site = "none";
} elseif ($_GET['menu'] == "site") {
    $crew = "none";
    $general = "none";
    $site = "";
} else {
    $crew = "none";
    $general = "";
    $site = "none";
}
?>
wordt
PHP:
<?php
$crew = "none";
$general = "none";
$site = "none";
if ($_GET['menu'] == "crew")
    $crew = "";
elseif ($_GET['menu'] == "general")
    $general = "";
elseif ($_GET['menu'] == "site")
    $site = "";
else
    $general = "";
?>
spaart je toch wat regeltjes uit :)

maar 't is wel geheel off-topic :p

orez

Legacy Member
mja, kan zo ook een case structuur schrijven eh :)

nuja soit, tstaat er nu zo, en klaat et nu zo staan :p

meRVy

Legacy Member
dank aan beide bovenstaanden

heeft mij goed op weg geholpen :)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan