Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    7

    Ripresentare i valori di un form

    Ciao!
    Vorrei chiedervi un consiglio su un codice che ho scritto e che si comporta in modo strano, probabilmente dovuto alla mia ignoranza.
    Ho una pagina HTML contenendo codice PHP. C'è un form con 3 campi e quando facio POST mi deve aprire la stessa pagina. Io leggo i valori dei campi dal form inviato e imposto di nuovo i valori dei campi. Solo che la prima volta legge solo il primo campo, la seconda volta legge tutti e tre.
    Ecco il codice:
    <?php

    if (isset($_REQUEST["codice"])) {$codice = $_REQUEST["codice"]; }
    else {$codice = "";}
    if (isset($_REQUEST["nominativo"])) {$nominativo = $_REQUEST["nominativo"]; }
    else {$nominativo = ""; print "-";}
    if (isset($_REQUEST["codice_fiscale"])) {$codice_fiscale = $_REQUEST["codice_fiscale"];}
    else {$codice_fiscale = "";}

    print '<td valign="middle" height="51">'; print "\n";
    print '<input type="text" name="codice" maxlength="12" value="'; print "$codice"; print '">'; print "\n";
    print "</td>\n";
    print '<td valign="middle">'; print "\n";
    print '<input type="text" name="nominativo" maxlength="60" size="60" value="'; print "$nominativo"; print '">'; print "\n";
    print "</td>\n";
    print '<td valign="middle">'; print "\n";
    print '<input type="text" name="codice_fiscale" maxlength="30" size="30" value="'; print "$codice_fiscale"; print '">'; print "\n";
    print "</td>\n";
    ?>

    Vi rigrazio tanto,
    Miky
    Miky

  2. #2
    Non l'ho provato e non entro nel merito:

    Codice PHP:
    <?php
    if (isset($_REQUEST["codice"])) {$codice $_REQUEST['codice']; }
    else {
    $codice '';}
    if (isset(
    $_REQUEST['nominativo'])) {$nominativo $_REQUEST['nominativo']; }
    else {
    $nominativo ' -';}
    if (isset(
    $_REQUEST['codice_fiscale'])) {$codice_fiscale $_REQUEST['codice_fiscale'];}
    else {
    $codice_fiscale '';}

    echo 
    '<td valign="middle" height="51">';
    echo 
    '<input type="text" name="codice" maxlength="12" value="'.$codice.'"/>';
    echo 
    "</td>";
    echo 
    '<td valign="middle">';
    echo 
    '<input type="text" name="nominativo" maxlength="60" size="60" value="'.$nominativo.'"/>';
    echo 
    "</td>";
    echo 
    '<td valign="middle">';
    echo 
    '<input type="text" name="codice_fiscale" maxlength="30" size="30" value="'.$codice_fiscale.'"/>';
    echo 
    "</td>";
    ?>

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    7
    Qui c'è qualcosa di strano!
    Intanto grazie! Avevo usato print per capire per dove passa. Infatti non sente il valore passato.
    Mettere il punto semplifica la vita!
    Però, però nulla!
    Io ho fatto una cosa. Ho commentato il codice che mi legge e mi stampa il primo campo e adesso gli altri due campi funzionano. Ci deve essere qualcosa lì!

    Grazie,
    Miky
    Miky

  4. #4
    Originariamente inviato da pamide
    Qui c'è qualcosa di strano!
    Intanto grazie! Avevo usato print per capire per dove passa. Infatti non sente il valore passato.
    Mettere il punto semplifica la vita!
    Però, però nulla!
    Io ho fatto una cosa. Ho commentato il codice che mi legge e mi stampa il primo campo e adesso gli altri due campi funzionano. Ci deve essere qualcosa lì!

    Grazie,
    Miky
    Non ho capito!
    Commentato quali righe e perchè?

    Ovviamente tutto dipende anche da quello che fai prima o dopo visto che usi la stessa pagina per tutto.

    Poi no credo servano gli isset, se c'è c'è se no c'è non c'è.

    Togli tutto e meti solo questo (do per scontato che il form sia in post):

    Codice PHP:
    <?php
    echo '<td valign="middle" height="51">';
    echo 
    '<input type="text" name="codice" maxlength="12" value="'.$_POST['codice'].'"/>';
    echo 
    "</td>";
    echo 
    '<td valign="middle">';
    echo 
    '<input type="text" name="nominativo" maxlength="60" size="60" value="'.$_POST['nominativo'].'"/>';
    echo 
    "</td>";
    echo 
    '<td valign="middle">';
    echo 
    '<input type="text" name="codice_fiscale" maxlength="30" size="30" value="'.$_POST['codice_fiscale'].'"/>';
    echo 
    "</td>";
    ?>
    Se effettivamente li passi e così non arrivano, il problema è altrove.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    7
    Grazie!
    Avevo tolto complettamente il campo "codice". Ecco cosa avevo fatto. Io programmo da tanti anni ma non in PHP, MySQL compania bella.

    Non sò! Ho spostato il codice poi l'ho rimesso come prima e adesso funziona. L'unica ipotesi è che c'era un carattere strano che non si vedeva.

    Comunque la tua soluzione è più elegante e la proverò subito!

    Grazie,
    Miky
    Miky

  6. #6
    Originariamente inviato da pamide
    Grazie!
    Avevo tolto complettamente il campo "codice". Ecco cosa avevo fatto. Io programmo da tanti anni ma non in PHP, MySQL compania bella.

    Non sò! Ho spostato il codice poi l'ho rimesso come prima e adesso funziona. L'unica ipotesi è che c'era un carattere strano che non si vedeva.

    Comunque la tua soluzione è più elegante e la proverò subito!

    Grazie,
    Miky
    Prego, non è una quetione di eleganza

    Se non ci sono altri motivi intrinsechi che io non vedo, se devi popolare il from, se la variabile ha un valore lo stampa se non ha nessun valore non stampa nulla a prescindere, poi se ti serve controllare per altri motivi è un altro discorso.

    puoi anche evitare più echo

    Codice PHP:
    <?php
    echo '<td valign="middle" height="51">
    <input type="text" name="codice" maxlength="12" value="'
    .$_POST['codice'].'"/>
    </td>
    <td valign="middle">
    <input type="text" name="nominativo" maxlength="60" size="60" value="'
    .$_POST['nominativo'].'"/>
    </td>
    <td valign="middle">
    <input type="text" name="codice_fiscale" maxlength="30" size="30" value="'
    .$_POST['codice_fiscale'].'"/>
    </td>'
    ;
    ?>
    e se necessario manipolali per esempio con strip_tags, trim o altro.


  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    7
    Ne $_POST ne $_REQUEST non funziona. Da errore "index non riconosciuto".
    Uso il vecchio metodo che è più sicuro.

    Grazie,
    Miky
    Miky

  8. #8
    Originariamente inviato da pamide
    Ne $_POST ne $_REQUEST non funziona. Da errore "index non riconosciuto".
    Uso il vecchio metodo che è più sicuro.

    Grazie,
    Miky
    Visto che chiunque usa questi medodi mediamente, si deduce che ci siano altri problemi altrove.


  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    7
    Il problema è che le variabili non sono impostate. Per questo da errore!

    Miky
    Miky

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.