Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    simulare i frame con i div

    Ciao a tutti!

    Sto cercando di "creare" un sito senza frame perchè mi sono stati sconsigliati e ho cercato di rimpiazzarli con i div.
    Dal punto di vista puramente grafico non ci sono problemi.
    Il mio problema nasce quando cerco di simulare il comportamento dei frame, ossia cliccando su un link presente in un div (ad es. DIV1) voglio far aprire una pagina (o più in generale un file html, txt, ecc) in un altro div (ad es. DIV2).

    Ho pensato di risolvere questo problemino con javascript, che io conosco decentemente, ma credo che in questo modo il tasto 'indietro' dei browser sia inutile, giusto??

    Accetto qualsiasi tipo di consiglio perchè io proprio non riesco a venirne a capo anche utilizzare altri linguaggi come PHP, AJAX non so....

    grazie a tutti anticipatamente!!!

    ciao!

  2. #2
    Infatti devi proprio usare PHP o altro linguaggio lato server (anche con AJAX se vuoi, ma io preferisco semplicemente PHP senza complicazioni ^^). In pratica, il comportamento "a frame" è appunto solo simulato dal punto di vista visivo. Quando clicchi su un link, puoi scegliere due strade:

    1. Ricarichi tutta la pagina, modificando il contenuto del box che simula il frame (in questo un linguaggio lato server ti aiuta a non dover replicare decine di volte le parti "fisse" della pagina).

    2. Usi AJAX per modificare il contenuto del box che simula il frame (puoi usare librerie come jQuery per semplificarti il lavoro).

    E' chiaro che la prima possibilità è la più immediata e garantisce massima accessibilità ai contenuti col minimo sforzo. Considera anche il fatto che ti aiuta a semplificarti il lavoro quando hai molte pagine. Potresti anche usare il semplice HTML, ma chiaramente dovresti creare tutte le pagine uguali modificando solo i contenuti del box che ti interessa.


  3. #3
    ti ringrazio...

    cmq se non ho capito male in entrambi i casi il tasto 'indietro' del browser è inutile...

    e poi un'ultima cosa: mi potresti dare un aiutino su come risolverlo in php (dato che non lo conosco benissimo)? Anche una semplice analisi a parole è ben accetta!

  4. #4
    Guarda, simulare il "target", di un frame , non lo fai con nessun linguaggio lato server.

    Con le inclusioni ricarichi comunque anche l'inclusione.

    Qui c'e un articolo che potrebbe tornarti utile utilizzando semplicmente html (con l'ausilio di jquery)

  5. #5
    In realtà, se l'intera pagina viene ricaricata, il tasto indietro del browser funziona, mentre se usi AJAX no.
    Io preferisco usare PHP proprio perché mi creo la struttura della pagina e le singole pagine che devono essere incluse nel box che simula il frame.

    Tieni presente però che questa tecnica comporta alcuni "cambiamenti" nella creazione degli URI dei link, oppure ti obbliga a usare un file .htaccess.

    In altre parole, tu hai una pagina (index.php) che fa l'inclusione della pagina PHP richiesta da un link. Questo link richiama sempre index.php passando in query string un parametro che indica quale pagina includere. Ti faccio un es. Un link fatto così:

    index.php?p=about-us

    contiene una query string che passa alla pagina stessa (index.php) un parametro (p) che vale "about-us". Ora, nella parte della pagina index.php contenuta nel box che simula il frame, devi recuperare il valore passato in query string ($_GET['p']) e includere il file PHP chiamato come il valore di questo parametro. Tradotto in codice PHP:

    codice:
    <html>
    <head>
    .....
    <body>
    <div id="menu">
    <ul>
    
    <!--
    Tutti i link del menu puntano a index.php passando una query string diversa.
    Il valore del parametro "p" della query string è il nome della pagina PHP da includere.
    -->
    [*]Chi siamo[*]Contatti[/list]
    </div>
    <div id="frame">
    <?php
    // Se l'array $_GET contiene un elemento "p" e questo elemento non è vuoto...
    
    if (isset($_GET['p']) && $_GET['p']) {
    
       /*
       Controllo se esiste un file chiamato come il valore di "p" (con .php alla fine) e lo includo.
       Nota che il file deve trovarsi nella stessa cartella del file index.php in cui usi questo script.
       Ad es., cliccando su "Chi siamo", viene incluso il file chi-siamo.php.
       */
     
       if (is_file($_GET['p'].'.php')) require_once($_GET['p'].'.php');
    }
    
    // Altrimenti, includo il file home.php (che contiene quello che appare in homepage).
    
    else require_once('home.php');
    ?>
    </div>
    </body>
    </html>
    Tieni presente che è necessario conoscere un po' PHP per fare queste cose e comunque, qui iniziano i "problemi" legati alla sicurezza. Se si tratta di siti semplici che includono semplicemente un file PHP "statico", non ci sono grossi problemi, ma se i file PHP che includi iniziano a leggere da un database o peggio, ricevono in query string dei parametri da usare nelle query, è necessario pensare seriamente di diventare esperti di sicurezza!

    Non sto a spiegarti come funziona l'.htaccess (che ti servirebbe solo per la riscrittura degli URI in modo user-friendly e SEO-friendly, essendo questi sempre basati su query string).

    Questo sistema è quello che usano i CMS per includere le parti di contenuto prelevate dal database o da file statici nel template.

    Forse quello che ha proposto alexba64 è una cosa più fattibile per te, senza costringerti ad addentrarti nella programmazione PHP avanzata.

  6. #6
    Grazie mille sia ad alex che a seed!!!!! siete stati preziosissimi...adesso è il momento che inizi a cavarmela da solo

    Grazie ancora!!!


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 © 2026 vBulletin Solutions, Inc. All rights reserved.