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

Langage PHP Discussion :

Mémoriser l'affichage dans un div


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de ilalaina
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Par défaut Mémoriser l'affichage dans un div
    Bonjour.

    Je suis nouveau sur PHP.
    J'ai une page comportant plusieurs div et j'utilise include pour la navigation et les liens.
    Mon problème est que si je clique sur un lien par exemple, tous les divs sont rafraîchis.
    Ce que je voudrais faire c'est de mémoriser l'affichage actuel dans chaque div, alors quand il y a rafraîchissement de la page le contenu ne sera pas modifié, seulement le div concerné par le lien change. J'ai envisagé d'utiliser les variables de sessions mais je n'y arrivais pas, alors je me tourne vers vous.

    Merci d'avance.

  2. #2
    Membre chevronné Avatar de SphynXz
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 439
    Par défaut
    si je comprend bien tes liens redirigent tous vers une page, index par exemple. Et c'est cette même page qui va inclure la bonne page dans le corps ?

    basiquement tu peux très bien bien utiliser les superglobals $_GET

    ton lien sera de la sorte :

    http://www.tonsite.com/index.php?do=accueil

    tu récupère ce fameux "do" via la superglobals $_GET['do']

    et tu inclut la page correspondant à l'accueil .

    Attention : ne fais pas une inclusion de page comme ceci : include($_GET['do']. ".php"); ton site serait vulnérable

  3. #3
    Membre éclairé Avatar de ilalaina
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Par défaut
    Merci pour votre réponse.
    Considérons par exemple que j'ai trois divs : divHaut, divGauche, et divDroite à contrôler.
    La divHaut va contenir le menu (lien donc)
    Initialement les divs divGauche et divDroite afficheront des pages d'accueil.
    Ensuite la divGauche affichera page1 ou page2 selon le choix à partir du menu.
    La divDroite affichera page3 ou page4 selon le choix à partir du menu.
    J'aurai donc le code suivant :
    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
     
    <div id = "divHaut">
    	<a href = "http://www.tonsite.com/index.php?pageGauche=1">Page Gauche 1</a>
    	<a href = "http://www.tonsite.com/index.php?pageGauche=2">Page Gauche 2</a>
    	<a href = "http://www.tonsite.com/index.php?pageDroite=3">Page Droite 3</a>
    	<a href = "http://www.tonsite.com/index.php?pageDroite=4">Page Droite 4</a>
    </div>
     
    <div id = "divGauche">
    	<?php
    		if (isset($_GET['pageGauche']))
    		{
    			$pageGauche = $_GET['pageGauche'];
    			switch ($pageGauche) 
    			{
    		        case 1 : include 'page1.php'; break;
    		        case 2 : include 'page2.php'; break;
    			}
    		else
    		{
    			include 'accueilGauche.php'; break;
    		}
    	?>
    </div>
     
    <div id = "divDroite">
    	<?php
    		if (isset($_GET['pageDroite']))
    		{
    			$pageDroite = $_GET['pageDroite'];
    			switch ($pageDroite) 
    			{
    		        case 1 : include 'page3.php'; break;
    		        case 2 : include 'page4.php'; break;
    			}
    		else
    		{
    			include 'accueilDroite.php'; break;
    		}
    	?>
    </div>
    Maintenant considérons qu'actuellement la divGauche affiche la page 2.
    Si je clique sur le lien 3 (Page droite 4) page4.php sera bien affichée dans divDroite mais la divGauche sera réinitialisée : accueilGauche.php y sera affichée.
    C'est là mon problème.

  4. #4
    Membre chevronné Avatar de SphynXz
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 439
    Par défaut
    tu peux très bien formater tes liens en fonction de l'url courante

    imaginons un lien comme ceci :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    echo ( isset( $_GET['pageDroite'] ) ) ? "<a href=\"http://www.tonsite.com/index.php?pageGauche=1&pageDroite={$_GET['pageDroite']}\">page1</a>"
     : "<a href=\"http://www.tonsite.com/index.php?pageGauche=1\" >page1</a>";
     
    ?>

  5. #5
    Membre éclairé Avatar de ilalaina
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Par défaut
    Merci bien pour votre réponse. Je pense que cela fera l'affaire.
    Une dernière question : selon votre expérience n'est-il pas trop lourd d'utiliser ce système de pseudo-frame div/include car il faut à chaque fois actualiser l'ensemble de la page?

  6. #6
    Membre chevronné Avatar de SphynXz
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 439
    Par défaut
    l'inclusion dans un div n'est aucunement une frame ou 'pseudo' frame.

    include va remplacer la ligne de code ou il se situe par l'ensemble du contenu du fichier inclue. afin de ne formater qu'une seul et même page!
    beaucoup de site fonctionnent encore comme ceci.

    ceci dit, pour n'actualiser qu'une partie de la page. je pense qu'il faudra se pencher du coté d'Ajax

    Pour ma part je ne suis pas très fan du passage en url de nombreuses variables. surtout sans url rewriting

    une solution par session serait de vérifier avant l'inclusion :

    Code php : 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
    <?php
    		if (isset($_GET['pageDroite']))
    		{
    			$pageDroite = $_GET['pageDroite'];
                            $_SESSION['pageDroite'] = $_GET['pageDroite'];
    			switch ($pageDroite) 
    			{
    		             case 1 : include 'page3.php'; break;
    		             case 2 : include 'page4.php'; break;
    			}
                    elseif( isset($_SESSION['pageDroite']) )
                    {
                            $pageDroite = $_SESSION['pageDroite'];
    			switch ($pageDroite) 
    			{
    		             case 1 : include 'page3.php'; break;
    		             case 2 : include 'page4.php'; break;
    			}
                    }
    		else
    		{
    			include 'accueilDroite.php'; break;
    		}
    	?>

    en admettant bien sûr que session_start(); soit exécuté avant toute sortie vers le navigateur

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

Discussions similaires

  1. [AJAX] Formulaire et affichage dans une DIV
    Par guillaume-13015 dans le forum AJAX
    Réponses: 2
    Dernier message: 16/02/2015, 17h01
  2. [AJAX] Affichage dans une div
    Par buched dans le forum jQuery
    Réponses: 4
    Dernier message: 04/06/2014, 19h41
  3. Validation de formulaire et affichage dans une DIV
    Par zeplubo dans le forum Langage
    Réponses: 3
    Dernier message: 27/08/2010, 17h02
  4. IFRAME: affichage dans des DIV différentes
    Par zar78 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 16/02/2010, 20h29
  5. [DIV] [FireFox] Problème affichage du contenu dans un div
    Par jibouze dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 24/11/2005, 11h06

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