Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Include...

  1. #1

    Include...

    Salve,

    premetto che sono a digiuno di php,vorrei modificare una pagina web utilizzando il tag include.
    Il problema e che non so come applicarlo alla mia pagina,che ha una lista di nomi ognuno con un link che rimanda alla stessa pagina con un href#.
    Il risultato che vorrei ottenere è uguale a quello di un frame cioe lista fissa con un div dove compaiano i link cliccati dalla lista stessa.
    Semplice forse,anche già trattato sicuramente, ma se qualcuno me lo spiega....
    la pagina è http://vikingrevival.netsons.org/menatarms.html

    Grazie

  2. #2
    Con href# intendi che hai dei link interi a delle ancora nella pagina?
    Oppure che alla URL associ una variabile?

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3

    con href# intendo che ho dei link nella pagina stessa...

    es: Ravie
    e poi sulla scheda dell'utente Ravie il suo ovvio collegamento
    <a name="22">Ravie</a>

    Vorrei creare in modo piu razionale e meno pesante in termini di kb,quindi lista nomi e un div dove compaia a richiesta il nome cliccato.
    Come posso ottenerlo?

  4. #4
    OK ho capito.
    Beh.... penso che switch() faccia proprio al caso tuo.

    Strutturi la tua pagina così:

    Codice PHP:

    $op 
    $_GET['op'];

    switch(
    $op) {

    case 
    "caso1":
             include(
    'inclusioni/pagina_caso1.php');
    break;

    case 
    "caso2":
             include(
    'inclusioni/pagina_caso2.php');
    break;

    case 
    "caso3":
             include(
    'inclusioni/pagina_caso3.php');
    break;

    case 
    "caso4":
             include(
    'inclusioni/pagina_caso4.php');
    break;

    default:
             include(
    'inclusioni/pagina_default.php');
    break;
    }

    echo 
    $contenuto
    In poche parole, te non devi fare altro che creare dei link nella pagina che abbiano la variabile op nella querystring.
    Codice PHP:
    <a href="stessa_pagina.php?op=xxx"
    Con questo metodo, la pagina richiama sempre se stessa, ma va a popolarsi diversamente in base al valore passato sulla querystring.
    Quando la variabile op non è definita (tipo la prima volta che apri quella pagina), lo script provvede a richiamare una pagina di default.

    Te non devi fare altro che preparare tante pagine da includere con la porzione di codice quanti casi hai previsto, più una per il default.
    Tutte le pagine (qui ho proposto il sistema più semplice) dovranno contenere una variabile (oppure una o più funzioni contenenti codice) chiamata $contenuto.

    Naturalmente, devi fare anche dei controlli sulla "bontà" delle variabili che vai a pescare dalla URL, ma quello è un secondo livello.
    Così va bene per iniziare.

    Ti segnalo inoltre anche il link a PHP.net, così vedi anche altri esempi di utilizzo di questa funzione. switch()


    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  5. #5
    Grazie per la gentile risposta intanto....

    Ho provato a seguire il tuo codice provato in locale e in linea ma non funziona ,evidentemente non mi sono chiare alcune cose.
    Ho creato una pagina di prova" maa.php" che contiene la lista dei nomi con il codice da te proposto.

    Codice PHP:
    [url="maa.php?op=inclusioni/pagina_caso1.php"]Ravie[/url
    questo è il link che dovrebe richiamare nel div la pagina "pagina_caso1.php"
    il codice l'ho lasciato inalterato ho solo aggiunto.
    Codice PHP:
     <?php   ?>
    Ho creato la cartella inclusioni,al suo interno la pagina "pagina_caso1.php".....ho aggiunto solamente
    Codice PHP:
    <?php echo $contenuto ?>
    che non ho capito a cosa serva anzi adesso che ci penso probabilmente al posto di "contenuto" va inserito altro codice!?
    Non mi e chiaro se nella pagina "pagina_caso 1.php" vada inserito altro codice o meno....dove ho sbagliato???????.
    Ho provato anche a cambiare il percorso del file chiamato e lasciare solamente "caso1", ma la pagina ricarica sempre se stessa certo, ma senza che nel div compaia la pagina "pagina_caso1.php".

    Grazie

  6. #6
    Il tuo errore sta nel link:

    .

    Non devi scrivere in quel modo, ma così:
    Codice PHP:
    [url="maa.php?op=caso1"]Caso 1[/url]
    [
    url="maa.php?op=caso2"]Caso 2[/url]
    [
    url="maa.php?op=caso2"]Caso 3[/url
    Naturalmente al posto di caso1 eccetera puoi mettere la stringa che preferisci, ma è solo per ribadire che non hai necessità di inserire il link alla pagina che vai ad includere, ti basta un solo riferimento.
    Esempio.
    Metti che stai facendo una applicazione tipo guesbook che ti permette (in una sola pagina e grazie a SWITCH) di leggere un articolo, scrivere un commento o leggere tutti i commenti.
    In questo caso potresti scrivere qualcosa tipo:
    Codice PHP:
    [url="maa.php?op=leggi_articolo"]Leggi un articolo[/url]
    [
    url="maa.php?op=leggi_commenti"]Leggi i commenti[/url]
    [
    url="maa.php?op=commenta"]Commenta l'articolo[/url] 
    .

    Lo switch poi è come ti ho già scritto.
    L'inclusione deve stare nei case di cui è composto il tuo switch().
    Spero di riuscire a spiegarmi, stavolta.

    Codice PHP:
    $op $_GET['op']; 

    switch(
    $op) { 
         case 
    "caso1"
             include(
    'inclusioni/pagina_caso1.php'); 
         break; 

         case 
    "caso2"
             include(
    'inclusioni/pagina_caso2.php'); 
         break; 

         case 
    "caso3"
             include(
    'inclusioni/pagina_caso3.php'); 
         break; 

         case 
    "caso4"
             include(
    'inclusioni/pagina_caso4.php'); 
         break; 

         default: 
             include(
    'inclusioni/pagina_default.php'); 
         break; 


    echo 
    $contenuto
    Come puoi vedere dal mio codice, lo switch va a funzionare prendendo dall'array $_GET il valore della variabile op. Se questa non è dichiarata, ti esegue il codice di default, mentre se esiste ne preleva il valore e lo confronta con quelli degli altri casi.
    Immaginalo come se switch fosse una lunga catena di IF/ELSEIF/ELSE.

    Se te, nel link, associ alla variabile op una stringa che non è prevista tra quelle dei vari case, allora switch non trova una corrispondenza e non ti restituisce nulla.

    Poi, come avrai notato, le pagine che vai a richiamare sono tutte in una cartella. Te puoi o metterle nella stessa directory dello script principale, o in una qualsiasi altra cartella che chiamerai come preferisci.
    Ogni pagina deve avere il seguente contenuto.
    Codice PHP:
    $contenuto "
    xxxxxxxxxxxxxxxxxxx
    "

    Fossi in te, per vedere se tutto funziona a dovere, dentro $contenuto di ogni diversa pagina, metterei semplicemente Caso 1, Caso 2, Caso 3 eccetera.
    In modo che in fase di debug dello script capisci al volo se funziona tutto a dovere o meno.

    Nell'altro post ti avevo anche segnalato dei link, di cui uno al manuale online di php.
    Dagli un'occhiata!

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  7. #7
    Grazie per la pazienza ma non conoscendo php alcune logiche e scopi delle istruzioni mi sfuggono....
    Allora ho corretto il link come hai detto,ma avevo già provato in quel modo, e questa parte di codice sta all'interno del div predisposto alla visualizzazione delle pagine "caso".

    Penso che il problema non stia nella parte di codice della pagina principale cioe "maa.php", ma nella pagina che viene chiamata dentro il div"pagina_caso1"
    Ogni pagina deve avere il seguente contenuto. codice PHP: $contenuto = " xxxxxxxxxxxxxxxxxxx "; Fossi in te, per vedere se tutto funziona a dovere, dentro $contenuto di ogni diversa pagina, metterei semplicemente Caso 1, Caso 2, Caso 3 eccetera. In modo che in fase di debug dello script capisci al volo se funziona tutto a dovere o meno.
    .... mi sa che è questo che non ho compreso.
    Nella pagina caso1(e seguenti) devo inserire questo codice
    Codice PHP:
    <?php $contenuto "caso1,caso2,caso3";?>
    .... indifferentemente dove? nella mia ignoranza non capisco a cosa serva sinceramente presumo a richiamare le pagine.....
    Il link che mi hai dato è ottimo ho capito questa funzione switch,ma non da esempi su cosa inserire nelle pagine linkate.

    Grazie ,spero un giorno di comprendere

  8. #8
    Non funziona non so dove sbaglio :master:

  9. #9
    Allora...... calma.... innanzi tutto, scrivere "non funziona" non dice nulla. Cerca di spiegare sempre quale sia l'errore che ti viene dato, o quantomeno descrivi la situazione (pagina totalmente bianca, browser impallato ecc).

    Ad ogni modo, non credo che tu abbia capito il funzionamento dello SWITCH, per cui cercherò di essere ancora più chiaro, penso che se copierai ed incollerai il codice così come è, dovrebbe andare!
    Le opportune modifiche le farai in un secondo tempo.
    Cominciamo.......

    Tu hai una pagina con due DIV (in linea di massima), uno per il menù l'altro per il contenuto richiamato dinamicamente.

    Codice PHP:

    <html>
    <head>
    <title>Prova SWITCH()</title>
    </head>

    <body>

    <?php
    // stampo il menu
    echo "
    <div id=\"menu\">
    <a href=\"maa.php?op=caso1\">Caso 1</a> 
    <a href=\"maa.php?op=caso2\">Caso 2</a> 
    <a href=\"maa.php?op=caso3\">Caso 3</a>
    </div>
    "
    ;

    // stampo il DIV per il contenuto 
    // richiamato dinamicamente
    echo "<div id=\"corpo\">";

    $op $_GET['op']; 

    switch(
    $op) { 
         case 
    "caso1"
             include(
    'inclusioni/pagina_caso1.php'); 
         break; 

         case 
    "caso2"
             include(
    'inclusioni/pagina_caso2.php'); 
         break; 

         case 
    "caso3"
             include(
    'inclusioni/pagina_caso3.php'); 
         break; 

         default: 
             include(
    'inclusioni/pagina_default.php'); 
         break; 


    echo 
    $contenuto;

    // chiudo il DIV
    echo "</div>";
    // chiudo i tag di BODY e HTML
    ?>
    </body>
    </html>
    Fino a qui ci sei?
    Ora, nella stessa directory in cui c'è questa pagina maa.php crei una cartella e la chiami inclusioni.
    All'interno della cartella inclusioni, metti 4 file.
    codice:
    ### contenuto della cartella  /inclusioni
    + pagina_caso1.php
    + pagina_caso2.php
    + pagina_caso3.php
    + pagina_default.php
    Ora ti scrivo il codice di ognuna delle 4 pagine.
    Codice PHP:
    // questo è tutto il codice che scriverai 
    // nella pagina_caso1.php
    $contenuto "<h1>Caso 1</h1>"
    Codice PHP:
    // questo è tutto il codice che scriverai 
    // nella pagina_caso2.php
    $contenuto "<h1>Caso 2</h1>"
    Codice PHP:
    // questo è tutto il codice che scriverai 
    // nella pagina_caso3.php
    $contenuto "<h1>Caso 3</h1>"
    Codice PHP:
    // questo è tutto il codice che scriverai 
    // nella pagina_default.php
    $contenuto "<h1>Default</h1>"
    Cosi DEVE funzionare.
    Ho ridotto il codice all'osso per farti capire il meccanismo.
    La pagina maa.php richiama sempre sé stessa; in base alla variabile op che c'è nella URL, lo switch andrà a recuperare una delle pagine presenti nella cartella inclusioni, e ne visualizzerà il contenuto.

    Ti ho già mandato un link al manuale ufficiale di PHP, ora te ne mando un altro paio. Ti prego di leggerli attentamente perché è tutto spiegato in maniera piuttosto chiara.
    Peraltro, sono tutti link alle guide di questo sito.

    Guida PHP Teorica - Strutture di COntrollo
    Istruzione SWITCH ed operatore ternario

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  10. #10
    Il codice funziona correttamente sul web.
    Adesso devo mettere apposto i css che risultano sballati nelle pagine caso chiamate all'interno della pagina "maa.php",
    infatti escono dal div principale predisposto per contenere le pagine caso.
    Con IE tutto sembra funzionare mentre Opera e Firefox non riescono ad interpretare come vorrei io,ma sicuramente ci sono errori miei visto che i css funzionavano su tutti i 3 browser.

    PROVA

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.