Comment faire pointer tous mes liens vers le même bloc
Bonjour,
débutant JavaScript Ajax, je me met au Jquery
Je réalise actuellement un site des plus classique avec entête sidebar et pied de page et un bloc 'tabContent' au milieu dans lequel je souhaite affiché toutes les pages du site
J'essaie donc de faire pointer tout mes lien <a href que se soit du menu (mes différentes rubriques) ou du top menu (login, s'enregistrer) ou encore de mon sidebar/footer vers ce bloc 'tabContent'
chaque lien étant une page à part et non une succession de blocs cachés
voici mon HTML
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <div id="global">
<?php include("entete.php");?>
<section id="Menuglobal">
<nav>
<ul id="nav">
<li><a href="?p=accueil">Home</a></li>
<li><a href="?p=quartier">Le Quartier</a></li>
<li><a href="?p=transport">Appart</a></li>
<li><a href="?p=partenaire">Partenaire</a></li>
<li><a href="?p=foto">Photos</a></li>
<li><a href="?p=formulaire_livredor">Livre dOr</a></li>
<li><a href="?p=contact">Contact</a></li>
</ul>
</nav>
<?php include ("dispTabcontent.php");?>
</section>
<?php include("sidebar.php");?>
<div id="tabContent" class="blocmenu">
</div>
</div>
<script src="js/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="js/menupos.js" type="text/javascript"></script>
</body> |
mon php qui correspond a l' include("dispTabcontent.php")
Code:
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
| <?php
if(isset($_GET['p']) && !empty($_GET['p'])) {
$p = htmlentities($_GET['p']);
switch($p) {
case 'accueil': $tabContent = 'Contenu de la page "accueil"';
break;
case 'quartier': $tabContent = 'Contenu de la page "quartier"';
break;
case 'transport': $tabContent = 'Contenu de la page "transport"';
break;
case 'partenaire': $tabContent = 'Contenu de la page "partenaire"';
break;
case 'foto': $tabContent = 'Contenu de la page "foto"';
break;
case 'formulaire_livredor': $tabContent = 'Contenu de la page "formulaire_livredor"';
break;
case 'contact': $tabContent = 'Contenu de la page "contact"';
break;
case 'register': $tabContent = 'Contenu de la page "register"';
break;
case 'lost': $tabContent = 'Contenu de la page "lost"';
break;
default: $tabContent = 'Page inconnue';
break;
}
echo $tabContent;
}
?> |
et mon JS qui correspond à menupos.js
Code:
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
| $(document).ready(function() { // le document est chargé
var $tabContent_div = $('#tabContent div'); // on recupere le contenu du div
var page = $('#nav li a:first').text(); // le nom de la page demandée par défaut c'est Accueil
$("a").live('click', function(event) { // l'utilisateur clic sur un lien
event.preventDefault() // stop le comportement par défaut du lien
var url = $(this).attr('href'); // on récupère le href de la page demandée
var pageDemandee = $(this).text(); // on récupère le nom de la page demandée
// si on appelle une page qui n est pas celle affichée
if(pageDemandee != page) {
page = pageDemandee;// on met en mémoire la page à la place de defaut index
// chargement dans la div
$.ajax({
url: url,
cache: false,
success: function(html) {
$tabContent_div.hide().html(tabContent).fadeIn("slow");
}
});
}
return false;
});
}); |
Le résultat de ce code est que les requêtes sont bien effectué (vu avec firebug) mais rien ne s'affiche dans mon bloc.
Je pense que le soucis peux provenir du php dans le sens ou mon switch répertorie tout les liens alors qu'ils sont dans des structures différentes( menu+include pour l'instant. Il y'a donc peut être un problème de famille avec les parents enfants, et cousin cousine;)
Mais j'ajouterai si le problème ne vient pas de la, au fur et mesure de la construction du site les autres du sidebar ou pied de page, etc.)
Ou bien du success de ma fonction JQuery qui est mal rédigé du faite que je dois surement me mélanger les pinceaux entre remplacer le contenu dans la balise et remplacer la balise par une autre, plus je parcours les tutos et les exemples de code plus je me mélange les pinceaux, je viens donc vous demander conseils.
Ou bien mais la c'est a vous de me le dire