Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662

    Ricompilare form tramite POST

    Ciao a tutti!

    Ho un form, inserisco i dati e passo via POST tutto ad una pagina (classe) per la validazione.
    Se la validazione da errore per uno o più campi mi ritorna al form e, tramite GET, ricompilo i campi del form con una cosa del tipo:

    Codice PHP:
    <input type="text" maxlength="30" name="nome" value="<?php echo $campo_nome ?>" />
    ...dove $campo_nome lo preleva da un include dove ci sono i testi.

    Il problema è che ho troppi campi nel form... tipo 19 checkbox e campi vari.

    Tramite GET posso al massimo arrivare a 255 caratteri nell'URL e così vorrei "ri"passarli al form tramite POST.

    Secondo voi è possibile?

    Grazie e buonadomanica!
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    278
    postresti usare una sessione
    $campo_nome=array();
    $_SESSION['campo_nome']=$campo_nome;

    dove $campo_nome è un array contenenti i vari valori da distribuire ai vari campi del form..

  3. #3
    Utente di HTML.it L'avatar di bANART
    Registrato dal
    Jul 2005
    Messaggi
    662
    Grazie Chiara!
    spiegami meglio (sono un neofita di PHP e non conosco bene ancora tutte le dinamiche).

    Io ho una cosa di questo tipo
    Il classico form:
    Codice PHP:
    <form action="controlloform.php" method="post">
      <input name="campo1" value="<?php echo $nome_campo1 ?>" />
      <input name="campo2" value="<?php echo $nome_campo1 ?>" />
      <input name="campo3" value="<?php echo $nome_campo1 ?>" />
      <input type="checkbox" name="checkbox1" <?php echo $checked ?> />
      <input type="checkbox" name="checkbox2" <?php echo $checked ?> />
      <input type="checkbox" name="checkbox3" <?php echo $checked ?> />
    <input name="submit" id="submit" value="Invia" />
    Poi ho la pagina di controllo:

    Codice PHP:
    <?php
    protected function Campo1Empty()
    {
        if(empty(
    $_POST[campo1]))
        { 
            return 
    TRUE;
        }
        else{
            return 
    FALSE;
        }
    }

    protected function 
    Campo2Empty()
    {
        if(empty(
    $_POST[campo2]))
        { 
            return 
    TRUE;
        }
        else{
            return 
    FALSE;
        }
    }

    protected function 
    Campo3Empty()
    {
        if(empty(
    $_POST[campo3]))
        { 
            return 
    TRUE;
        }
        else{
            return 
    FALSE;
        }
    }

    protected function 
    Checkbox1Empty()
    {
        if(empty(
    $_POST[checkbox1]))
        { 
            return 
    TRUE;
        }
        else{
            return 
    FALSE;
        }
    }

    protected function 
    Checkbox2Empty()
    {
        if(empty(
    $_POST[checkbox2]))
        { 
            return 
    TRUE;
        }
        else{
            return 
    FALSE;
        }
    }

    protected function 
    Checkbox3Empty()
    {
        if(empty(
    $_POST[checkbox3]))
        { 
            return 
    TRUE;
        }
        else{
            return 
    FALSE;
        }
    }



    public function 
    ErrorResult()
            {
                if(
    $this->Campo1Empty())
                {
                    
    $errnome="&errcampo1=1";
                }
                            if(
    $this->Campo2Empty())
                {
                    
    $errnome="&errcampo2=1";
                }
                            if(
    $this->Campo3Empty())
                {
                    
    $errnome="&errcampo3=1";
                }
                            if(
    $this->Checkbox1Empty())
                {
                    
    $errnome="&errcheckbox1=1";
                }
                            if(
    $this->Checkbox2Empty())
                {
                    
    $errnome="&errcheckbox2=1";
                }
                            if(
    $this->Checkbox3Empty())
                {
                    
    $errnome="&errcheckbox3=1";
                }
            }

                
    $re_cmp1 "&cmp1="$_POST['campo1'];
                
    $re_cmp2 "&cmp2="$_POST['campo2'];
                
    $re_cmp3 "&cmp2="$_POST['campo3'];
                
    $re_ckb1 "&ckb1="$_POST['checkbox1'];
                
    $re_ckb2 "&ckb2="$_POST['checkbox2'];
                
    $re_ckb3 "&ckb3="$_POST['checkbox3'];
    header("Location: ../?page=reg" $re_cmp1 $re_cmp2 $re_cmp3 $re_ckb1 $re_ckb2 $re_ckb3);
                die;
    ?>
    ...dove con un include do "il testo" ad ogni variabile GET, con una cosa del tipo:

    Codice PHP:
    if(!empty($_GET['campo1']))
        {
            
    $txt_campo1 $_GET['campo1'];
        }

    if(
    $_GET['checkbox1']==1)
        {
            
    $checkbox_checked "checked='checked'";
        } 
    ...e me lo va a riempire nell'input come visto sopra.

    L'esempio che mi hai mostrato come lo utilizzo?
    Grazie per l'aiuto!
    Matteo Coletta - fotografia
    Fotografo Lanciano - Fotografia a Lanciano e Pescara

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.