Visualizzazione dei risultati da 1 a 4 su 4

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    Leggere il manuale del PHP a volte può dare una grossa mano comunque...

    la prima possibilità che hai è quella di usare l'escaping delle stringhe, nel tuo caso aggiungere \n alla fine di ogni stringa, n sta per new line.
    Ovviamente il tuo è un caso in cui usare tutti glie echo e le doppie virgolette fa incaSSare la CPU di ogni server perché gli fa fare del lavoro inutile in più, infatti... (vedi sotto)
    [PHP
    <?php
    echo "<table border='1'>\n";
    echo
    "<tr><td>docente</td>\n";
    echo
    "<td>corso </td></tr>\n";

    echo
    "<tr>\n";
    echo
    "<td><input type='text' name='prova' value=' 'id =0</td>\n";
    echo
    "<td><input type='text' name='prova' value=' 'id =1</td>\n";
    echo
    "<td><input type='text' name='prova' value=' 'id =2</td>\n";
    echo
    "<td><input type='text' name='prova' value=' 'id =3</td>\n";
    echo
    "<td><input type='submit' value='invia'/>\n";
    echo
    "<td><input type='reset' value= 'annulla'/>\n";
    echo
    "</tr>\n";

    echo
    "</table>\n";

    [/PHP]

    ... infatti in questi casi è meglio usare l'heredoc che ti permette di scrivere il tuo pezzo di codice come se stessi scrivendo semplice HTML ( con in più la possibilità di inserire variabili PHP se ne hai bisogno, quindi tutto il tuo lavoro finisce così:
    Codice PHP:
    $tabella =<<<TABLE
    <table border='1'>
    <tr><td>docente</td>\n";
    <td>corso  </td></tr>\n";

    <tr>\n";
    <td><input type='text' name='prova[]' value='     ' id =0</td>
    <td><input type='text' name='prova[]' value='     ' id =1</td>
    <td><input type='text' name='prova[]' value='     ' id =2</td>
    <td><input type='text' name='prova[]' value='     ' id =3</td>
    <td><input type='submit' value='invia'/>
    <td><input type='reset' value= 'annulla'/>
    </tr>

    </table>\n
    TABLE;
    echo 
    $tabella
    Con l'heredoc puoi anche usare le tabulazioni se vuoi indentare il codice, nota l sintassi particolare della stringa, nota anche che l'ultimo token deve necessariamente stare sul bordo sinistro, cioè all'inizio della riga o non funzionerà.

    In più ti ho scritto nel tuo codice name="prova[]" così funzionerà creando un array di nomi, in altre parole il campo sarò così nel POST ( o nel GET ) prova[0], prova[1], prova[n] come facevi tu riuscivi solo a prendere il contenuto dell'ultimo campo di imput perché l'http avrebbe sovrascritto gli altri considerandoli tutti lo stesso campo.

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    29
    Quote Originariamente inviata da Marcolino's Visualizza il messaggio
    Leggere il manuale del PHP a volte può dare una grossa mano comunque...

    la prima possibilità che hai è quella di usare l'escaping delle stringhe, nel tuo caso aggiungere \n alla fine di ogni stringa, n sta per new line.
    Ovviamente il tuo è un caso in cui usare tutti glie echo e le doppie virgolette fa incaSSare la CPU di ogni server perché gli fa fare del lavoro inutile in più, infatti... (vedi sotto)
    [PHP
    <?php
    echo "<table border='1'>\n";
    echo
    "<tr><td>docente</td>\n";
    echo
    "<td>corso </td></tr>\n";

    echo
    "<tr>\n";
    echo
    "<td><input type='text' name='prova' value=' 'id =0</td>\n";
    echo
    "<td><input type='text' name='prova' value=' 'id =1</td>\n";
    echo
    "<td><input type='text' name='prova' value=' 'id =2</td>\n";
    echo
    "<td><input type='text' name='prova' value=' 'id =3</td>\n";
    echo
    "<td><input type='submit' value='invia'/>\n";
    echo
    "<td><input type='reset' value= 'annulla'/>\n";
    echo
    "</tr>\n";

    echo
    "</table>\n";

    [/PHP]

    ... infatti in questi casi è meglio usare l'heredoc che ti permette di scrivere il tuo pezzo di codice come se stessi scrivendo semplice HTML ( con in più la possibilità di inserire variabili PHP se ne hai bisogno, quindi tutto il tuo lavoro finisce così:
    Codice PHP:
    $tabella =<<<TABLE
    <table border='1'>
    <tr><td>docente</td>\n";
    <td>corso  </td></tr>\n";

    <tr>\n";
    <td><input type='text' name='prova[]' value='     ' id =0</td>
    <td><input type='text' name='prova[]' value='     ' id =1</td>
    <td><input type='text' name='prova[]' value='     ' id =2</td>
    <td><input type='text' name='prova[]' value='     ' id =3</td>
    <td><input type='submit' value='invia'/>
    <td><input type='reset' value= 'annulla'/>
    </tr>

    </table>\n
    TABLE;
    echo 
    $tabella
    Con l'heredoc puoi anche usare le tabulazioni se vuoi indentare il codice, nota l sintassi particolare della stringa, nota anche che l'ultimo token deve necessariamente stare sul bordo sinistro, cioè all'inizio della riga o non funzionerà.

    In più ti ho scritto nel tuo codice name="prova[]" così funzionerà creando un array di nomi, in altre parole il campo sarò così nel POST ( o nel GET ) prova[0], prova[1], prova[n] come facevi tu riuscivi solo a prendere il contenuto dell'ultimo campo di imput perché l'http avrebbe sovrascritto gli altri considerandoli tutti lo stesso campo.
    grazie mille adesso con la tua dettagliata spiegazione spero di non avere più problemi del genere, ma non ho ben capito questa funzione heredoc, mi hai fatto molto incuriosire perché spesso mi capita che per via delle varie echo mi perdo tra apici doppi singoli apici etc...

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.