Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    29

    problema con le tabelle

    Salve ragazzi sto realizzando una tabella con 2 colonne sulla prima c'è scritto docente, e sulla seconda colonna c'è scritto corso, nella varia righe devono comparire alcuni campi di testo e poi i classici bottoni invia e annulla, il problema è che arrivato all'inserimento dei campi docente e corso riesco anche ad andare alla riga successiva, la dalla seconda riga in poi stampo tutto il mio output su un unica riga qualcuno ha idee? vi linko il codice
    Codice PHP:

    <?php
    echo "<table border='1'>";
    echo 
    "<tr><td>docente</td>";
    echo 
    "<td>corso  </td></tr>";

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


    echo 
    "</table>";



    ?>
    grazie mille:-)

  2. #2
    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.

  3. #3
    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...

  4. #4
    Utente di HTML.it L'avatar di Marcolino's
    Registrato dal
    May 2003
    residenza
    Udine
    Messaggi
    3,606
    Ti ho messo pure il link al manuale del PHP, vai e leggi, guarda che è più semplice di quanto pensi.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.