Hoi,

Ik ben nieuw hier en heb een klein beetje ervaring met php. Ik heb redelijk wat ervaring met HTML en CSS. Ik ben een site op aan het zetten met CodeIgniter in combinatie met Bootstrap.

In mijn header probeer ik een menu te maken, waarvan een van de <li> elementen class="active" moet krijgen, gebaseerd op de pagina die de gebruiker aan het bekijken is.

Echter, ongeacht mijn code, het is altijd het eerste <li> element welke de class="active" krijgt. Dit betekend dat de eerste if statement altijd wordt uitgevoerd. Het lijkt erop dat de variabele $pagina alle waardes krijgt (home, wiezijnwij, contact), daarom zou de eerste if statement dus ook waar zijn (?). Echter als ik $pagina echo, dan zie ik dat deze variabele toch de juiste pagina weergeeft wat dus tegenstrijdig is met mijn eerste bevinding.

Heeft iemand enig idee hoe ik dit kan oplossen?? Ik denk dat het probleem gerelateerd is aan het feit dat ik de header oproep vanuit een controller (voor elke pagina) waardoor deze variabele op de een en of andere manier alle waardes krijgt.

Hieronder mijn code:

View:


<div class="span4 offset4">
<ul class="nav nav-pills">
<?php 
$pagina = uri_string();
// echo $pagina;
if ($pagina = "home")
{
echo "<li class =\"active\"><a href=" . base_url() . "index.php/home>Home</a></li>";
echo "<li><a href=" . base_url() . "index.php/wiezijnwij>Wie Zijn Wij</a></li>";
echo "<li><a href=" . base_url() . "index.php/contact>Contact</a></li>";
}
elseif ($pagina = "wiezijnwij") 
{
echo "<li><a href=" . base_url() . "index.php/home>Home</a></li>";
echo "<li class =\"active\"><a href=" . base_url() . "index.php/wiezijnwij>Wie zijn wij</a></li>";
echo "<li><a href=" . base_url() . "index.php/contact>Contact</a></li>";
echo current_url();
}
elseif ($pagina = "contact")
{
echo "<li><a href=" . base_url() . "index.php/home>Home</a></li>";
echo "<li><a href=" . base_url() . "index.php/wiezijnwij>Wie zijn wij</a></li>";
echo "<li class =\"active\"><a href=" . base_url() . "index.php/contact>Contact</a></li>";
echo current_url();
}
else
{
echo "<li><a href=" . base_url() . "index.php/home>Home</a></li>";
echo "<li><a href=" . base_url() . "index.php/wiezijnwij>Wie zijn wij</a></li>";
echo "<li><a href=" . base_url() . "index.php/contact>Contact</a></li>";
}
?>
</ul>

</div>


Controller bevat meerdere functies die het volgende bevatten:



public function index()
	{	
		$this->load->view('templates/header');
		$this->load->view('paginas/paginax');
		$this->load->view('templates/footer');
	}



Dan begrijp je het idee van MVC niet.
Een controller echoot namelijk nooit iets.
Kijk even goed in de CI doc, daar staan wat simpele voorbeelden in
Ger van Steenderen op 29/08/2013 18:33:23

Dan begrijp je het idee van MVC niet.
Een controller echoot namelijk nooit iets.
Kijk even goed in de CI doc, daar staan wat simpele voorbeelden in


Ah je hebt gelijk, ik had de view en controller omgedraaid. Ik heb het aangepast. Tnx voor de tip!

Reageren