IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] Menu AJAX pour site PHP


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 24
    Points
    24
    Par défaut [AJAX] Menu AJAX pour site PHP
    Bonjour à tous,

    Voici mon souci :
    Je suis en train de créer un site web en PHP dont chaque page est construite de facon dynamique selon ce modele (avec des include et sous la forme d'un tableau) :
    - un header
    - une colonne à gauche contenant le menu
    - une colonne à droite pour le contenu des pages
    - un footer

    Voici le code de mon menu (qui est donc appelé à chaque chargement de page) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
     
    <?
    //connexion à la BDD
    include("connect.php");
     
    $url = $_SERVER['REQUEST_URI'];
     
     
    //si l'utilisateur est un particulier on se connecte à la table particuliers
    if ($_SESSION['APPARTENANCE']=="RAQUETTES"){
    	$table = "randosraq";
    	echo "<a href='index2.php?appart=PIED'>Voir les randos à pied</a><br/><br/>";
    } else {
    	$table = "randospied";
    	echo "<a href='index2.php?appart=RAQUETTES'>Voir les randos en raquettes</a><br/><br/>";
    }
     
     
     
    //============== on construit le menu ===========================
    //on affiche les randos à themes
    $sql = "SELECT URL,TITRE FROM $table WHERE TYPE='theme';";
    $resultat = mysql_query($sql);
     
    ?>
    <script type="text/javascript">
    window.onload=montre;
    function montre(id) {
    	var d = document.getElementById(id);
    	for (var i = 1; i<=6; i++) {
    			if (document.getElementById('ssmenu'+i)) {document.getElementById('ssmenu'+i).style.display='none';}
    	}
    	if (d) {d.style.display='';}
    }
    </script>
    <!-- //====== MENU DEROULANT CSS ========== // !-->
    <dl id="menu">
     
     
    <?
    //randos demi journée
    if ($table == "randospied"){
    	echo "<dt onclick=\"javascript:montre();\"><a href='demiAccueil.php'><img src='images/menu/demi.png' alt='Randos demi-journée' /></a></dt>\n";
    } else {
    	echo "<dt onclick=\"javascript:montre();\"><a href='demiAccueilRaq.php'><img src='images/menu/demi.png' alt='Randos demi-journée' /></a></dt>\n";
    }
    ?>
    <dt onclick="javascript:montre();"><img src='images/menu/weekends.png' alt='Randos week-ends' /></dt>
     
     
    <?
    //on affiche les randos en etoile
    $sql2 = "SELECT URL,TITRE FROM $table WHERE TYPE='etoile';";
    $resultat2 = mysql_query($sql2);
    echo "<dt onclick=\"javascript:montre('ssmenu3');\"><img src='images/menu/etoile.png' alt='Randos en étoile' /></dt>\n";
    	echo "<dd id='ssmenu3'>\n";
    		echo "<ul>\n";
    while ($data2 = mysql_fetch_assoc($resultat2)){
    	if(is_file($data2['URL'])){
    		echo "<li><a href='".$data2['URL']."'>".$data2['TITRE']."</a></li>\n";
    	} else {
    		echo "<li><a href='../".$data2['URL']."'>".$data2['TITRE']."</a></li>\n";
    	}
    }
    		echo "</ul>\n";
    	echo "</dd>\n";
     
    echo "<dt onclick=\"javascript:montre('ssmenu4');\"><img src='images/menu/themes.png' alt='Randos à thèmes' /></dt>\n";
    echo "<dd id='ssmenu4'>\n";
    echo "<ul>";
    //randos à themes
    while ($data = mysql_fetch_assoc($resultat)){
    	if(is_file($data['URL'])){
    		echo "<li><a href='".$data['URL']."'>".$data['TITRE']."</a></li>\n";
    	} else {
    		echo "<li><a href='../".$data['URL']."'>".$data['TITRE']."</a></li>\n";
    	}
    }
    			echo "</ul>\n";
    		echo "</dd>\n";
     
     
     
    //randos itinerantes
    echo "<dt onclick=\"javascript:montre();\"><img src='images/menu/itinerantes.png' alt='Randos itinerantes' /></dt>\n";
     
     
     
    //on affiche les categories statiques
    echo "<dt onclick=\"javascript:montre('ssmenu6');\"><img src='images/menu/hebergement.png' alt='Hebergement' /></dt>\n";
    	echo "<dd id='ssmenu6'>\n";
    		echo "<ul>\n";
    $sql3 = "SELECT URL,TITRE FROM autres WHERE CATEGORIE='hebergement';";
    $resultat3 = mysql_query($sql3);
    $data3 = mysql_fetch_assoc($resultat3);
    if(is_file($data3['URL'])){
    	echo "<li><a href='".$data3['URL']."'>".$data3['TITRE']."</a></li>\n";
    } else {
    	echo "<li><a href='../".$data3['URL']."'>".$data3['TITRE']."</a></li>\n";
    }
    ?>
     
    		</ul>
    	</dd>
     
    <dt><img src='images/menu/tarifs.png' alt='Tarifs' /></dt>
    <dt><a href='contact.php'><img src='images/menu/contact.png' alt='Contact' /></a></dt>
    <dt><a href='livor.php'><img src='images/menu/livreor.png' alt='Livre d or' /></a></dt>
     
     
    </dl>
    Le problème est donc que la navigation sur le site est ralentie par le fait que je fait ces appels à la base de données à chaque chargement de page, pour construire ce menu.

    J'aimerais donc pouvoir utiliser AJAX afin de n'interroger la BDD qu'une seule fois pour construire mon menu, et me servir du résultat ensuite sur les autres pages...mais j'ai du mal à voir le schéma que je dois mettre en place...

    Ca serait bien si quelqu'un pouvait me mettre sur la piste...

    Merci d'avance.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 28
    Points : 24
    Points
    24
    Par défaut
    up

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 23
    Points : 25
    Points
    25
    Par défaut
    heu...
    Je vois pas comment ajax peut t'aider...
    Déjà je vois pas pourquoi 2 petit appelle à la DB ralentisse ton application.
    Vérifie déjà ton code si il est pas optimisable.
    Ensuite je ton conseille plutôt de mettre un place un cache... ou alors j'ai rien compris à ton problème.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Ajax et Post pour fichier .php
    Par squal31 dans le forum jQuery
    Réponses: 4
    Dernier message: 09/09/2014, 23h01
  2. Batteries des test pour site PHP
    Par MaitrePylos dans le forum Langage
    Réponses: 2
    Dernier message: 29/08/2010, 15h23
  3. formulaire inscription pour site PHP
    Par frost80500 dans le forum Langage
    Réponses: 2
    Dernier message: 08/01/2008, 14h53
  4. Editeur Wysiwyg pour site PHP
    Par bahaaldine dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 18/10/2007, 20h38
  5. [PHP] Editeur graphique pour site php
    Par jojo1-2 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 11/01/2006, 14h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo