Newsgroup: it.comp.www.php
Titolo: richiamare pagine dentro al tag Div

Come si fa a visualizzare una pagina html dentro un <div>
al click di un pulsante di un menu' ?
Praticamente il menu' è fisso con a fianco un div
in cui voglio richiamare altre pagine del sito.

rebons wrote:

Se lo vuoi fare con JS/HTML questo non e' possibile in quanto il tag
DIV non puo' "contenere" altre pagine HTML. Forse ti riferisci al tag
IFRAME.
Se lo vuoi fare in PHP puoi utilizzare le funzioni readfile, file, etc.
-- 
I am what I am, I do what I can
Cerchi un programmatore PHP/MySQL? 
http://url.repository.biz/go/1Y
L'uomo, conscio di sbagliare, persevera.

 Se lo vuoi fare in PHP puoi utilizzare le funzioni readfile, file, etc.
Mi interessa con il php.
C'è un link che spiega le differenze anche con esempi di quando e quale 
deve essere usato?
Ma include /o require non si usano mai?

 Ma include /o require non si usano mai?
Se devi includere codice HTML e' inutile scomodare include etc.
Sei un newbie? Leggi questo: 
http://setecastronomy.stufftoread.com/downloads/newbie.txt



Puoi fare così: costruisci tanti div quanti sono i diversi contenuti che 
vuoi presentare, così vengono scaricati tutti su un'unica pagina.
Setti uno solo di questi div, tramite i fogli di stile a
'display: block',
mentre tutti gli altri li setti a
'display: none'.
A questo punto, alla pressione di un link attivi un javascript che va a 
cambiare il valore di display che ti interessano.
es:
<!-- rendi invisibile ciò che era visualizzato -->
<a 
href="javascript:document.getElementById('IDdiv2').style.display='none'>Contenuto2</a>
<!-- rendi visibile il nuovo div-->
<a 
href="javascript:document.getElementById('IDdiv1').style.display='block'>Contenuto1</a>
Va da se che php centra solo per la creazione della pagina, poi gestisci 
tutto sul client. I contenuti non sono pagine html, in quanto fanno già 
parte di una pagina.
---------
Altra soluzione: dentro al div ci metti un <iframe>, al quale tramite la 
pressione di un link vai a sostituire il sorgente. Es
<a 
href="javascript:document.getElementById('IDiframe').src='pagina.est'>Contenuto1</a>
<a 
href="javascript:document.getElementById('IDiframe').src='pagina2.est'>Contenuto2</a>
Nel secondo caso c'è una nuova connessione al server per scaricare la 
pagina, che quindi può essere un php.
In entrambi casi hai bisogno di un pò di javascript. Almeno fino a 
quando non vuoi ricaricare anche la pagina principale, ma non mi sembra 
che sia quello che avevi richiesto.
Ricapitolando devi studiare un pò i css, javascript, (x)html, e se serve 
anche php.
Ciao.

 vuoi presentare, cosě vengono scaricati tutti su un'unica pagina.
Minchia, se quello č un menu devi scaricarti *tutto* il sito...
Voto per usare dei normali link ed utilizzare l'inclusione
____file index.php___
<a href="index.php?pagina=nome">voce del menu</a>
<?
if ($_GET['pagina'] && file_exists("tpl/".$_GET['pagina'].".php")) {
    // aggiungere altri controlli!!
    include "tpl/".$_GET['pagina'].".php";
}
?>
_________________
Ludovico

 Voto per usare dei normali link ed utilizzare l'inclusione
Naturalmente le soluzioni hanno applicazioni diverse, il voto io lo dò 
quando conosco il tipo di applicazione.
Ciao

a chiarimento
praticamente dentro al div
devo poter inserire qualsiasi tipo di pagina html o php.
Ad esempio una pagina forum, testo, etcc...
Praticamente invece di avere un sito in cui il menu' viene ripetuto
per ogni pagina, si includono le altre pagine nella pagina base dove c'è 
il menu', solo che l'inclusione deve finire dentro a un div.

 Ad esempio una pagina forum, testo, etcc...
Il DIV non è il tag corretto. DEVI utilizzare IFRAME o direttamente un
FRAMESET.


 
<a href="loader.php?id=pagina1.php">link1</a>
<a href="loader.php?id=pagina2.php">link2</a>
[..]
<div id="main">
<?include ($_GET['id'])?>
</div>
devi avere cura di non includere un documento html completo (head, body 
etc.. sono già nel documento che include).
Oppure risolvi con l'iframe, se vuoi dentro un div (ma sarebbe inutile, 
visto che già iframe è un elemento blocco).

 body etc.. sono già nel documento che include).
Prima di rispondere forse e' il caso che leggi meglio quanto viene
richiesto.
[quoto rebons]
devo poter inserire qualsiasi tipo di pagina html o php.
Ad esempio una pagina forum, testo, etcc...
[/quoto]
La soluzione dell'include con una pagina di un forum ovviamente
generera' del codice HTML totalmente fuori da qualsiasi standard.


 
Sono dell'idea che dipende da come è generata la pagina del forum.
Rebons continua a chiedere come praticare una determinata soluzione, 
farebbe bene ad esporre il problema.
Tu dai risposte basandoti su ovvietà che hai definito tu.

 Tu dai risposte basandoti su ovvietà che hai definito tu.
[quoto rebons]
Come si fa a visualizzare una pagina html dentro un <div>
...
Praticamente il menu' è fisso con a fianco un div
in cui voglio richiamare altre pagine del sito.
...
entro al div devo poter inserire qualsiasi tipo di pagina html o php.
Ad esempio una pagina forum, testo, etcc...
[/quoto]
"Pagina HTML", "altre pagine del sito", "qualsiasi tipo di pagina
html", piu' che mie sembrano ovvieta' di rebons.
Rebons vuole fare con DIV quello che si puo' fare solo con IFRAME o,
limitatamente, con i FRAMESET.


 
Ok, non polemizzo, ma visto che è Rebons che fa il sito che se VUOLE 
utilizzare i div (perché Rebons dice questo, che vuole utilizzar i div) 
io gli ho detto :
[mi quoto]
 > devi avere cura di non includere un documento html completo (head,
 > body etc.. sono già nel documento che include).
[/quoto]
Non c'è nulla di errato.

 quando conosco il tipo di applicazione.
Beh, dalle parole usate ho capito che si trattava di un menu di navigazione,
ed immagino sia per buona parte del sito. Inoltre i layer danno molte
complicazioni, se devono svolgere ruoli importanti..

 il menu', solo che l'inclusione deve finire dentro a un div.
che ne dici di fare il contrario? da ogni pagina includi il menu? oppure le
soluzioni che ti hanno già proposto

 Non c'è nulla di errato.
Il tuo consiglio e' errato in quanto non in linea con quanto richiesto
da Rebons ("entro al div devo poter inserire qualsiasi tipo di pagina
html o php. Ad esempio una pagina forum, testo, etcc...").
E' come se avesse chiesto "Voglio fare A senza usare B" e tu gli avessi
risposto "Usa B".
La richiesta di Rebons preclude a priori la tua soluzione in quanto un
prerequisito e' proprio quello di poter inserire "qualsiasi tipo di
pagina".


 
mmm si potrebbe dire che la tua risposta è errata poiché Rebons vuole 
utilizzare un div (sta nel subject, sembra questo un prerequisito: 
Rebons vuole utilizzare i div. Faresti bene a leggere i subject prima di 
rispondere).
Io chiudo qui, ciao.

 di rispondere).
[quoto la mia prima risposta]
Se lo vuoi fare con JS/HTML questo non e' possibile in quanto il tag
DIV non puo' "contenere" altre pagine HTML. Forse ti riferisci al tag
IFRAME.
Se lo vuoi fare in PHP puoi utilizzare le funzioni readfile, file, etc.
[/quoto]



se non ho capito male:
con iframe inserisco qualsiasi pagina o modulo funzionale (es. forum) 
cosi' come è;
con il div posso fare la stessa cosa, ma devo rielaborare
in modo opportuno la pagina (o il modulo) prima di poterla inserire.
Quindi entrambi vanno bene come risultato finale.
La scelta del div ha lo svantaggio di dover usare pagine opportunamente
predisposte e quindi ad esempio un forum va adattato;
pero' l'iframe non consentirebbe di avere una elevata separazione
tra contenuto e grafica limitando quindi l'accessibilità
(ovviamente considerando che le pagine da inserire nel div o iframe 
siano esse stesse accessibili).
Quindi la scelta dell'uno o dell'altro va fatta in base al tipo di
sito che si vuole creare (ad alta o normale accessibilità).
Cioè non esiste una soluzione che vada bene per tutto. La richiesta mia
dei div e' stata impostata considerando che sono comodi per separare
i contenuti dalla visualizzazioni e quindi piu' flessibili da usare.
Non conoscevo pero' la problematica come contenitore di altri file.
Ringrazio per vs. delucidazioni.


non vorrei sbagliarmi (ancora sono nella parte teorica) ma credo sia 
molto piu' semplice avere un solo menu' che richiama altri file e li 
inserisce in un box a suo fianco;
questo perchè si evita il problema di dover per ogni file nuovo che puo' 
essere ad esempio un nuovo modulo etc.. doverlo predisporre per 
contenere il menu' e quindi lavorare sul layout della pagina stessa.

 lavorare sul layout della pagina stessa.
Diciamo che se tu usassi un sistema di template di qualche genere
entrambi i discorsi verrebbero a cadere, sarebbe il sistema di template
ad includere le varie parti "comuni" (menu, intestazioni, pie di pagina
etc.) ed ogni pagina potrebbe contenere solo i contenuti specifici
della pagina stessa.


 Ringrazio per vs. delucidazioni.
Mi ripeto ancora, ti serve un pò di documentazione su html (etc..)

 della pagina stessa.
tra i tanti quali suggerisci anche in funzione di accessibilitą del sito
e compatibili con i div.
Ci sono link dove sono messi a confronto i template con specifica di 
vantaggi-svantaggi di uno rispetto all'altro.