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 :

Système d'appel avec menu sur la même page


Sujet :

Langage PHP

  1. #1
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut Système d'appel avec menu sur la même page
    Salam ; voila j'ai une page principale tab.php qui contient un menu de 5 onglets.
    comment utilisé php pour affiché une page par défaut ( exemple page1) ?
    comment utilisé un système d'appel sur la même page tab.php de d'autres pages?
    code tab.php:
    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
     
    <!DOCTYPE html>
    <HTML>
    <head>
    	<!--Pour forcer le navigateur à afficher en mode IE9, sans quoi il peut passer en mode quirks.-->
    	<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
    	<meta charset="utf-8" />
    	<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <!-- application dynamique  -->
    	<link rel="shortcut icon" href="image/favs3g.ico" />
    	<link rel="stylesheet" media="screen" type="text/css" href="../css/tab.css">
    	<link rel="stylesheet" media="screen" type="text/css" href="../css/aff.css">
    	<title>S 3 G</title>
    </head>
    <body class='conteneur'>
     
    	<div class='s3g'>
    		<p>S.3.G</p>
    	</div>
    	<div>
    		<nav class="nav">
    			<ul id="navig">
    				<li><a href="#">Recaputulatif</a></li>
    				<li><a href="#">Enregistrement</a></li>
    				<li><a href="#">analyse</a></li>
    				<li><a href="tab.php">Données</a></li>
    				<li><a href="#">Mot de passe</a></li>
    				<li><a href="../mod/decon.inc.php">Déconnexion</a></li>
    			</ul>
    		</nav>
    	</div>
    	<div class="contenu">
    	<!--  place pour inséré les pages selon le menu -->
    			<?php include(); ?>
    	</div>
     
     
    </body>
     
    </html>
    merci

  2. #2
    Invité
    Invité(e)

  3. #3
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    Re; voila sans passé par une bdd pour la navigation dans ma page tab.php j'ai procedé comme suite :
    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
     
    .......
    // tableau contenant les pages du site
    $navok = array('bord' => 'bord.inc.php',
                      'dec' => 'aff.inc.php',
    				  'anal' => 'anal.inc.php',
    				  'mp' => 'mp.inc.php',
    				   );
     
    <div class="contenu">
    	<!--  place pour inséré les pages selon le menu -->
    			<?php 
     
    				// -----------------------------------------------------------------
    				if ( (isset($_GET['page'])) && (isset($navok[$_GET['page']])) ) {
    					include($navok[$_GET['page']]);   // Nous appelons le contenu central de la page
    					} 
    				/* else {
    				header ('location: ./tab.php');   // Page par défaut 
    				} */
     
    			?>
    	</div>
    Est ce que c'est la bonne méthode ?
    comment utilisé php pour affiché une page par défaut ( exemple page1) selon le code ci-dessus ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Oui.
    Il suffit de mettre aussi la page par défaut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php // récupération du contenu à afficher
    				if ( (isset($_GET['page'])) && (isset($navok[$_GET['page']])) ) {
    					include($navok[$_GET['page']]);   // Nous appelons le contenu central de la page
    				} else {
    					include('contenu_par_defaut.php']]);   // Page par défaut
    				}
    ?>

  5. #5
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    Merci jreaux63 je faisais confusions avec header merci encore une fois.
    dernier soucis :
    je fait une redirection a partir de la page index.php vers tab.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    .........
    header ('location: ./interfaces/tab.php');
    là j’arrive pas a faire afficher la tab.php avec son include('bord.inc.php') .
    sa me donne l'affichage de la page tab.php sans l' include

  6. #6
    Invité
    Invité(e)
    Par défaut
    Il faut mettre le BON chemin relatif entre tab.php et le fichier à inclure.

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    pour ma part je penses que le système avec $_GET est archaïque..

    alors avec un htaccess tu redirige toutes tes pages vers tab.php, si c'est ta page principale ( mais souvent on nomme le superController index.php, il faut qu'il soit à la racine de ton site , pour mon exemple j'ai créé un repertoire mvc dans localhost )


    fichier .htaccess au même niveau que le superController
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SetEnv PHP_VER 5
    RewriteEngine on
    RewriteRule !\.(js|ico|gif|jpg|png|pdf|css|mp3|swf|htm|html)$ index.php  [QSA,L]

    sur cette page index.php tu défini plusieurs variables qui te serviront dans tes différentes vues et contrôleurs

    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
     
    <?php
     
    //début page index ( je te laisse tester les différentes variables, celons que tu es sur un dédie ou un mutualisé elle peuvent légèrement changer 
     
     
    define ('HOST_PATH' ,str_replace ('index.php' , '' , $_SERVER['SCRIPT_NAME'] ) );   
     
    define ('HOST_DIR' , dirname(__FILE__).'/' );
     
    $url =  $_SERVER['REQUEST_URI'] ;
     
    if ( HOST_PATH!='/') {
    define ('DISPACHER_URL_PATH' , str_replace(HOST_PATH , "" ,$url));
    }
    else{
    define ('DISPACHER_URL_PATH' , $url) ;
    }
     
     
    define("TEMPLATE_PATH_FILE",HOST_DIR.'frontEnd/theme1/');
    define("TEMPLATE_PATH",HOST_PATH.'frontEnd/theme1/');
     
    //tu crée un arbre route => controller
    //les index default sont utilisés s'il n'y a pas de bon chemin ( cela évite les noPage)
     
    $route = array(
        'default' => 'page0.php',
        'index'   => 'page1.php',
        'recapitulatif' =>
     
        array(
            'default' =>'page2.php',
            'index'   =>'page3.php',
            'divers'  =>'page4.php'
       )
     
        );
     
     
    //Tu fais une fonction de traitement entre les routes et l'url
     
     
    function orderListe($item, $key ,$s ){
        $dataKey = array_slice($key , 0 , 1 );
        $data = $dataKey[0];
        if( isset($item[$data]) ){
          $key = array_slice($key,1);
          $s['url'][]= $data;
           if(!is_array($item[$data])){
              $s['module']=$item[$data];
              return $s;
          }else{                   
              return  orderListe($item[$data], $key,$s );                
          }
        }else if( isset($item['default']) ){
              $s['module']=$item['default'];
              return $s;
        }
     
    }
     
     
    $disp=explode('/',DISPACHER_URL_PATH);
    $controller=orderListe($route,$disp,'' );
    //print_r($controller);
     
     /*
     tu test : http://localhost/mvc/recapitulatif/divers/
    maintenant tu sais que le module est pour cette page page4.php
    tu appelle le template principal 
    */
     
     //petite function pour utiliser avec try, plutot qu'avec des if
        function _test($x,$e) {
        if (!$x) {
            throw new Exception($e);
        }
        else
        {
            return 1;
        }
     
     
        }
        try{
        //tu appelle le template général, dans ce template tu appellera le module  
        _test(is_file(TEMPLATE_PATH_FILE.'template.php') , 'le fichier '.TEMPLATE_PATH_FILE.'template.php'.' n\'exite pas');
        include  TEMPLATE_PATH_FILE.'template.php';
        } catch (Exception $e) {
        echo "Message d'erreur: ",  $e->getMessage(), "\n";
        }
    //FIN Index.php

    page template.php

    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
     
     
    <html>
    <head>
    </head>
    <body>
     
     <?php
        try{
            //tu appelle le menu
         _test(is_file(TEMPLATE_PATH_FILE.'menu.php') , 'le fichier '.'menu.php'.' n\'exite pas');
        include  TEMPLATE_PATH_FILE.'menu.php';
        } catch (Exception $e) {
        echo "Message d'erreur: ",  $e->getMessage(), "\n";
        }
    ?>   
     
    <?php
        try{
            //tu appelle le module
         _test(is_file(TEMPLATE_PATH_FILE.$controller['module']) , 'le fichier '.TEMPLATE_PATH_FILE.$controller['module'].' n\'exite pas');
        include  TEMPLATE_PATH_FILE.$controller['module'];
         } catch (Exception $e) {
        echo "Message d'erreur: ",  $e->getMessage(), "\n";
        }
    ?>
    </body>
    </html>

    page menu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <ul>
        <li><a href="<?php echo HOST_PATH;?>">Index</a>
        <li><a href="<?php echo HOST_PATH.'recapitulatif/' ?>">Recapitulatif</a>
        <ul>
            <li><a href="<?php echo HOST_PATH.'recapitulatif/divers/' ?>">Divers</a></li>
        </ul>   
    </ul>
    Les pages

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    echo 'Ma page 4';
    /* ici les modules peuvent être gérés en MVC avec des class c'est beaucoup mieux*/
    ?>
    Voilà un petit exemple que je te conseils de tester
    Conception / Dev

Discussions similaires

  1. Requete avec jointure sur la même table
    Par CaptainChoc dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/04/2009, 12h30
  2. UPDATE avec SELECT sur la même table
    Par Invité dans le forum Langage SQL
    Réponses: 7
    Dernier message: 07/12/2007, 03h39
  3. Réponses: 11
    Dernier message: 19/09/2007, 10h20
  4. [MySQL] requête avec jointure sur la même table
    Par gwena54 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 08/05/2007, 11h22
  5. Requêtes avec liaison sur la même table
    Par jessenco dans le forum Requêtes
    Réponses: 10
    Dernier message: 15/01/2007, 01h10

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