Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    ciclo for in una variabile

    Ciao a tutti!
    ricevo da un form, in POST un tot di campi che dopo aver verificato spedisco via mail in formato HTML.
    Tutto bene se non fosse che, per comodità, una parte dei dati li vorrei stampare attraverso un ciclo for, visto che i nomi dei campi sono del tipo:
    titolo1 - titolo2 etc.

    Stampando a video funza tutto, ma quando invece cerco di infilare il codice nella variabile che sarà poi il BODY della mail, incappo in un errore di formula dovuto al ciclo for.

    Come faccio ad infilare un ciclo for in una variabile?
    ...e anche l'"unione" del nome di due variabili che così funziona $_POST[quanti.$n], all'interno della variabile non va!
    di seguito il codice, ridotto all'osso:
    codice:
    $testo_m="
    </head>
    <body>
    <table width=500 border=0 cellspacing=0 cellpadding=0 class=testo>
      for ($n=1; $n<=20; $n++)
      { 
      <tr>
        <td>$n</td>
        <td>$_POST[quanti.$n]</td>
        <td>$_POST[prezzo.$n]</td>
        <td>$descrizione.$n</td>
        <td>$_POST[codice.$n]</td>
        <td>$_POST[urgenza.$n]</td>
      </tr>
    }
    </table>
    
    
    </body>
    </html>";
    ciao, e grazie

  2. #2
    il codice che riporti on funzionerà mai


    puoi fare una cosa tipo:

    Codice PHP:
    $testo_m "
    </head>
    <body>
    <table width=500 border=0 cellspacing=0 cellpadding=0 class=testo>"
    ;
      for (
    $n=1$n<=20$n++)
      { 
    $testo_m .= "<tr>
        <td>
    $n</td>
        <td>
    {$_POST["quanti.$n"]}</td>
        <td>
    {$_POST["prezzo.$n"]}</td>
        <td>
    $descrizione.$n</td>
        <td>
    {$_POST["codice.$n"]}</td>
        <td>
    {$_POST["urgenza.$n"]}</td>
      </tr>"
    ;
    }
    $testo_m .= "</table>


    </body>
    </html>"

    insomma: basta concatenare dei valori in una variabile per prendere tutte le variabili generate dal ciclo


  3. #3
    Grazie mille!
    ci provo e ho capito...

    Ste

  4. #4
    C'è solo una cosa che non funziona!
    Codice PHP:
    <td>$descrizione.$n</td
    Questo frammento di codice, all'interno del ciclo for, non "somma" il nome della variabile, mentre invece funza se faccio come per le altre variabili prendendole dal POST, es. $_POST["codice.$n"]}

    E' un problema di sintassi (parentesi, apici o quant'altro)?
    help!
    Ste

  5. #5
    dipende da csa volevi stampare.... una concatenazione? se è una concatenazione fai...

    $descrizione$n

    e se non va...

    {$descrizione}{$n}


  6. #6
    Acc! non va in entrambi i casi.
    Quello che sto cercando è concatenare il nome della variabile NON il suo contenuto. E come dicevo facendo così $_POST["codice.$n"]} funziona; nell'altro modo no, neanche con le graffe!

    Le ho provate tutte quelle che mi vengono in mente...
    altre idee?

    grazie mille cmq.
    Stefano

  7. #7
    non so se ho capito .. ma $descrizione{$i} ???
    <?php echo ' Emiliano Gabrielli (aka AlberT) ',"\n",
    ' socio fondatore e membro del direttivo del GrUSP ',"\n",
    ' AlberT_at_SuperAlberT_it - www.SuperAlberT.it ',"\n",
    ' IRC: #php,#AES azzurra.com ',"\n",'ICQ: 158591185'; ?>

  8. #8
    Niente da fare.

    Provo con altre parole a rispiegare, sperando di essere più chiaro:
    ho una variabile $n che in un ciclo for assumerà valori da 1 a 20.
    Il contenuto della variabile $n lo devo concatenare al NOME della variabile $descrizione.

    Il tutto, però, è contenuto, formattato in una tabella html, all'interno di un'altra variabile $testo_m, che è il corpo della mail cha viene automaticamente inviata etc.

    Codice PHP:
    for ($n=1$n<=20$n++)
      { 
        
    $testo_m .="
      <tr>
        <td style=\"border-bottom:1px dotted #333333; padding:3px;\" class=testo>
    $descrizione{$n}</td>
        <td style=\"border-bottom:1px dotted #333333; padding:3px;\" class=testo>
    {$_POST[descrizione.$n]}</td>
      </tr>"
    ;

    Se eseguo il codice sopra, per $descrizione{$n}
    stampa solo i numeri da 1 a 20;

    invece per {$_POST[descrizione.$n]}
    stampa il contenuto delle variabili
    $descrizione1
    $descrizione2
    $descrizione3
    $descrizione4
    .....

    La variabile $_POST[descrizione] arriva da un modulo ma esiste anche in versione non globale $descrizione1 (etc) perché viene rifiltrata da addslashe e compagnia.



  9. #9
    quindi tu vuoi stampare il *contenuto* di $descrizione1..$descrizione20 ??


    Codice PHP:
    <?php

    $n
    =2;
    $desc2='pippo';

    echo 
    "pluto ...  ${"desc{$n}"}  ... pluto";

    pluto ...  pippo  ... pluto
    <?php echo ' Emiliano Gabrielli (aka AlberT) ',"\n",
    ' socio fondatore e membro del direttivo del GrUSP ',"\n",
    ' AlberT_at_SuperAlberT_it - www.SuperAlberT.it ',"\n",
    ' IRC: #php,#AES azzurra.com ',"\n",'ICQ: 158591185'; ?>

  10. #10

    risolto!

    sei mitico!!!
    è perfetto, finalmente...

    sei hai altri cinque minuti da dedicarmi, mi spieghi la sintassi di ${"descrizione{$n}"}
    così la capisco...

    Altrimenti non fa nulla, ci mancherebbe, sei stato fin troppo gentile.
    Ciao, Stefano

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.