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

    rendere univoco un valore (per farne l'echo come ID)

    Ciao a tutti...

    devo includere una serie di file all'interno di un box...
    faccio così: con iclude e con echo...

    Codice PHP:
    echo "<div class=\"box\">";
    include(
    "$path/$file");
    echo 
    "</div>"
    Tutto bene...
    Ora però ho la necessità di individuare univocamente ogni box...
    per cui lo fornisco di ID (in questo es. ID="display")
    così...

    Codice PHP:
    echo "div class=\"box\" d=\"display\">";
    include(
    "$path/$file");
    echo 
    "</div>"
    Però così naturalmente ogni echo mi riporta lo stesso ID="display"...

    Come faccio ad aggiungere un numero progressivo alla generazione degli ID?
    per avere display1, display2, display3, ...
    Ho provato così, ma non funziona...
    Codice PHP:
    echo "<div class=\"box\" id=\"display+"$i"\"> ";
    include(
    "$path/$file");
    echo 
    "</div>"
    come devo impostare?
    così?
    $i = 0;
    $i = $i+1


    ma dove esattamente?
    eppure capisco che cerco di fare una cosa semplicissima...



    Grazie dell'attenzione
    :master:
    O saisons, ô châteaux,
    Quelle âme est sans défauts?

    Rimbaud - L'Éternité (1872)

    EsseZeta - VisualWriting | www.essezeta.org

  2. #2
    Prova a fare così:

    Codice PHP:
    $num_tot_display=3//quì metti il numero di box da visualizzare
    $file[0] = 'buongiorno.php';
    $file[1] = 'buonasera.php';
    $file[2] = 'buonanotte.php';

    for(
    $i=0$i<=$num_tot_display$i++){
          echo 
    "<div class=\"box\" id=\"display".$i."\"> ";
          include(
    "$file[$i]");
          echo 
    "</div>";

    Ho provato a sciverlo adesso, forse c'è qualcosa di sbagliato!!!!
    Prova se funziona e fammi sapere

  3. #3
    grazie mille...

    ma non fa al caso mio perché non so in anticipo quanti e quali siano i file che vado ad includere...


    Li pesco da una cartella e li devo visualizzare all'interno di una serie di contenitori...

    mi servrebbe un qualcosa da attaccare al valore dell'ID
    tipo come hai fatto tu:
    id=\"display".$i."\"

    ma $i dovrebbe essere ogni volta maggiore di uno...

    il problema è che non so settarlo...


    Per spiegarmi meglio... in javascript faccio così:

    var num_IDID=0;
    function blaBla()
    {
    num_IDID = num_IDID+ 1;

    da quel momento ogni volta che aggiungo num_IDID ad un id mi ritrovo l'id con un suffisso 1, 2, 3...


    In php come faccio a crearmi una variabile che cresce di uno ogni volta?


    Mi sarò spiegato????


    :master:
    O saisons, ô châteaux,
    Quelle âme est sans défauts?

    Rimbaud - L'Éternité (1872)

    EsseZeta - VisualWriting | www.essezeta.org

  4. #4
    Per creare una variabile che cresce di uno ogni volta puoi fare cosi: $variabile++ oppure $variabile+1.

    Oppure se li peschi da una cartella puoi fare in questo modo: apri la cartella con opendir(), poi con un ciclo while leggi il contenuto usando la funzione readdir() e incrementi una variabile di 1 per ogni file (nel caso dell'esempio precedente $num_tot_display++), dopo aver fatto questo saprai con certezza quanti file ci sono nella cartella e quindi quanti box dovrai visualizzare definendo il valore della variabile $num_tot_display.....con lo stesso metodo (leggendo i file dalla directory) inserisci il nome di ciascun file contenuto nella directory in un array (nel tuo caso $file[]='$nome_file_letto') e quindi verrà creato l'array contenente tutti i nomi dei files, infine non ti resta che utilizzare il codice che ho postato nella risposta precedente per visualizzare i box.....
    Secondo me puoi procedere anche in questo modo..

  5. #5
    non è possibile... VVoVe:

    ci sono riuscito...



    riprendendo l'esempio di prima, faccio così:

    id=\"MyDisplay".++$acca."\"

    e prima: $acca = 1;


    non so quanto è pulita... perché ottengo valori a partire da 2... forse devo dichiarare $acca = 0 ??? non so, ora studio un po'...
    comunque ai miei fini è risolutivo, perché ogni box ha id univoco:

    <div id="MyDisplay2"...
    <div id="MyDisplay3"...
    <div id="MyDisplay4"...
    ...

    ciao, chiudo
    O saisons, ô châteaux,
    Quelle âme est sans défauts?

    Rimbaud - L'Éternité (1872)

    EsseZeta - VisualWriting | www.essezeta.org

  6. #6
    ora che leggo piccions mi è tutto ancora più chiaro...
    purtroppo la sua replica mi è arrivata mentre componevo il mio messaggio...
    grazie mille...
    O saisons, ô châteaux,
    Quelle âme est sans défauts?

    Rimbaud - L'Éternité (1872)

    EsseZeta - VisualWriting | www.essezeta.org

  7. #7
    Si ma c'è un problema di base: in un DIV o dichiari la classe o il selettore.
    Quindi o scrivi div class oppure div id.
    Questa mia precisazione non è per un problema di PHP, ma di layout e di CSS.

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

  8. #8
    in risposta ad alcio74... e comunque un po' fuori tema (perché a me interessava individuare con ID proprio in sostituzione dell'utilizzo delle classi)...

    o scrivi div class oppure div id
    perché dici così?

    io ho fatto diverse volte uso di entrambi...

    in alcuni casi, data una classe di elementi, alcuni li voglio individuare perché speciali...
    speciali perché di resa visiva differente, o di utilizzo differente... che so, uno dei tanti

    ho bisogno che venga pescato da una funzione php o js e messo in evidenza... mi rendo conto che ci vorrebbero dei casi concreti per spiegare a dovere... comunque non credo si vada contro norme e/o standard... o meglio, in genere passo anche la validazione...

    ma mi hai messo la pulce nell'orecchio...

    buonanotte a tutti
    O saisons, ô châteaux,
    Quelle âme est sans défauts?

    Rimbaud - L'Éternité (1872)

    EsseZeta - VisualWriting | www.essezeta.org

  9. #9
    Si ma c'è un problema di base: in un DIV o dichiari la classe o il selettore.
    Quindi o scrivi div class oppure div id.
    Questa mia precisazione non è per un problema di PHP, ma di layout e di CSS.
    Non capisco cosa intendi dire alcio74 .
    I selettori di identità possono essere utilizzati una sola volta, ad esempio se creo un selettore chiamato display1 posso utilizzarlo in una sola parte della pagina, invece le classi posso dichiararle anche più volte nella stessa pagina, ma nel caso di essezeta il selettore cambia ogni volta, perchè in ogni esecuzione del ciclo for la variabile $i verrà incrementata di 1:

    Codice PHP:
    echo "<div class=\"box\" id=\"display".$i."\"> "
    La prima volta sarà display1, poi diventerà display2 e così via, in parole povere, ogni box avrà il suo identificatore diverso, il problema nasceva se veniva usata più volte la stessa identità per 2 o più div.

    C'è però un altro problema, dato che non si conoscono in anticipo il numero di box da mostrare, sarà un pò difficile creare il foglio di stile per tutti quei livelli; certo se ne sono 3 o 4 si può creare un foglio di stile in cui si dichiarano i 3 o 4 selettori, ad esempio display1, display2, display3 e così via che poi verrani utilizzato nel caso in cui si abbia la necessità, altrimenti, supponendo che tutti i box avranno lo stesso stile, dovrai generare dinamicamente anche il foglio di stile, ad esempio inserendo qualcosa del genere tra i tag <head></head>:

    Codice PHP:
    //recuperi il numero di file utilizzando il metodo che ti ho detto prima
    $num_tot_file=$x;
    //recuperi il nome dei file
    $file[]=$y;//array con il nome dei files

    echo "<style type=\"text/css\">";
    for(
    $i=0$i<=$num_tot_display$i++){ 
        echo
    "#display$i{stile1:stile; stile2:stile;}";
    }
    echo 
    "</style>"

  10. #10
    @piccions
    altrimenti, supponendo che tutti i box avranno lo stesso stile, dovrai generare dinamicamente anche il foglio di stile
    in tal caso (che poi è esattamente il mio) è più semplice se assegno una-e-una-sola classe a tutti i box per "stilizzarli" nel mio css (livello presentazione)... gli ID li uso invece solo per lavorarci dinamicamente con le funzioni di inclusione (livello contenuti)

    comunque è utile la tua assegnazione dinamica di un foglio di stile...


    O saisons, ô châteaux,
    Quelle âme est sans défauts?

    Rimbaud - L'Éternité (1872)

    EsseZeta - VisualWriting | www.essezeta.org

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.