Visualizzazione dei risultati da 1 a 4 su 4

Discussione: pagina master e frame

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    147

    pagina master e frame

    In che modo posso generare la pagina index dove presenta solo un frame alto dove ci sono i menù e caricare nel body centrale le varie pagine php?

    Vorrei creare una pagina master (index.html/.php) con un frame alto dove ci sta il menu e un frame centrale che carica le varie pagine php.

    Pensavo di creare in menu alto in questo modo
    codice HTML:
    <a href="?p=12" title="pagina12">PAGINA 12</a></li>
     <li>
                <a href="?p=13" title="pagina13">PAGINA 13</a></li>
    
    <?php
    switch ($p) 
                { 
                
            case 1: 
            $p12 = include ('pagina12.php'); 
            break;
            case 2:
            $p13 = include('pagina13.php');
            break;
    ?>
    Solo che pagina12.php e pagina13.php al loro interno hanno dei link ad altre pagine (esempio pagina14.php) con dei POST e dei GET esempio
    echo "<td></td><td><a href=\"pagina14.php?mod=$id_scheda&id=$sessione_ut ente\">[VAI]</a></td>";

    In questo modo mi viene caricata la pagina14.php ma non dentro la pagina master index dove c'è il frame dei menu.

    Come posso fare?

  2. #2
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Puoi fare due cose:

    1. pattern Front-controller (o simili):
    Qualunque tuo link porta alla tua pagina master (index.php). Con un parametro decidi quale contenuto mostrare.
    Ad esempio puoi organizzare il tuo codice cosi
    /
    --- contents/
    ------------ pagina1.php
    ------------ pagina2.php
    ------------ ...
    --- index.php

    Nella pagina master
    Codice PHP:
    <html>
      ...
    <
    body>
        <
    divIL TUO MENU </div>
        <
    div>
             
    $content $_GET['page'];
             
    // ATTENZIONE !!! Fai tutti i controlli del caso su $_GET['page']
              
    include("contents/pagina{$content}.php");
        </
    div>
    </
    body>
    </
    html
    Quindi, tutti i tuoi link saranno del tipo
    herf="index.php?page=1
    herf="index.php?page=9
    herf="index.php?page=14&mod=$id_scheda&id=$session e_ut ente"

    2. Usi php come template engine (un po' l'opposto del punto 1)
    /
    ----- common/
    ----------menu.php
    ------pagina1.php
    ------pagina2.php
    -----.....

    Nelle tue pagineXX.php
    Codice PHP:
    <html>
    ...
    <body>
        <div> <?php include('common/menu.php'?> </div>
        <div>
             Contenuto della pagina XX 
       </div>
    </body>
    </html>
    Ultima modifica di boots; 20-11-2013 a 19:10

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    147
    Ok, pur non sapendo i pro e i contro dei due metodi sono per ora orientato al secondo metodo, solo che in questo caso non ho capito come devo strutturare la pagina master. E come utilizzare la struttura :
    /
    ----- common/
    ----------menu.php
    ------pagina1.php
    ------pagina2.php
    -----.....
    Porto l'esempio pratico del mio caso:

    index.php
    Codice PHP:
    <?php
        
    require_once('auth.php');
    ?>

    <html >
    <head>
    <meta>
    <title>Member Index</title>
    <link href="loginmodule.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
    <h1>Benvenuto <?php echo $_SESSION['SESS_NAME'];?></h1>
    <a href="profile.php">My Profile</a> |  <a href="logout.php">Logout</a> |

    <?php 
    if ($_SESSION['SESS_NAME'] == 'admin') {
    ?>
     <a href="listautenti.php">Utenti</a> | <a href="schede.php">Schede</a> 
    | <a href="add0.php">aggiungi schede</a> | <a href="add1.php">domande</a> | <a href="listaassegn.php"> Attività</a>
     | <a href="assegn.php"> aggiungi attività</a> 
    <?php       }
    else{
    $sessione_utente=$_SESSION['SESS_MEMBER_ID'];


            include_once (
    "config.php");
    ...
    ...
    ...

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    In breve, devi vedere nelle tue pagine il codice che si ripete.
    Ad esempio, potresti mettere
    Codice PHP:
     <a href="listautenti.php">Utenti</a> | <a href="schede.php">Schede</a
    | <
    a href="add0.php">aggiungi schede</a> | <a href="add1.php">domande</a> | <a href="listaassegn.php"Attività</a>
     | <
    a href="assegn.php"aggiungi attività</a
    nel file menu_admin.php che (visto che si ripete per tutte le altre pagine di amministrazione , presumo ) lo metti nella cartella common.

    Poi nel tuo caso
    Codice PHP:
     <?php
        
    require_once('auth.php');
    ?>

    <html >
    <head>
    <meta>
    <title>Member Index</title>
    <link href="loginmodule.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
    <h1>Benvenuto <?php echo $_SESSION['SESS_NAME'];?></h1>
    <a href="profile.php">My Profile</a> |  <a href="logout.php">Logout</a> |

    <?php 
    if ($_SESSION['SESS_NAME'] == 'admin') {
       include (
    'common/menu_admin.ctp');
     }
    else{
    $sessione_utente=$_SESSION['SESS_MEMBER_ID'];
         include_once (
    "config.php");
    ...
    ...
    ...
    Quindi, tutti i "pezzi" di codice che si ripetono su più pagine, li metti in common e poi li richiami con include...proprio come fai con auth.php

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.