Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    conservare i dati di una form dopo messaggio di errore

    Ciao a tutti,
    ho una form con dei campi da compilare obbligatoriamente.
    Qualora l'utente ne lasci qualcuno in bianco si viene istradati ad una pagina che da notizia del tipo di errore compiuto e invita a tornare alla pagina contenente la form tramite apposito link.
    Vorrei conoscere se possibile un metodo, se esiste (ma sono certo di si) che dopo aver cliccato sul link di rimando mi riporti alla form con i dati precedentemente inseriti evitando quindi all'utente di ridigitarli.
    Quale strada seguire?
    Eccoti!

  2. #2
    ciao a te

    io invece faccio un controllo in javascript, e solo se i campi sono stati compilati correttamente passo le variabili alla pagina che li processerà.
    esempio:
    codice:
    <script><!--
    function validate()
    {
        if ((document.nome_form.nome.value=="")||
    	(document.nome_form.email.value=="")||
    	(document.nome_form.email.value.match(/.+\@.+\..+/) == null))
    	{
    		alert ("Attenzione!\nRiempire i campi obbligatori e/o controllare il formato della email.")
    		return false
    	}
    }
    // -->
    		</script>
    <FORM name="nome_form" ACTION="index.php?page=blabla" METHOD="post" onsubmit="return validate()">



  3. #3
    Ringrazio troglos per la soluzione che in effetti è quella che cercavo.
    Lato server ad ogni modo c'è qualche alternativa?
    Eccoti!

  4. #4
    Originariamente inviato da IMMANUEL_KANT
    Ringrazio troglos per la soluzione che in effetti è quella che cercavo.
    Lato server ad ogni modo c'è qualche alternativa?
    salvare in sessione i campi che ti interessano prima di andare avanti o di mostrare la pagina di errore, consigliata oltre alla soluzione js, visto che js si disabilita con un click
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    Dichiarare le variabili come variabili di sessione non è sufficiente ad impedire che al ritorno sulla pagina i dati vengano resetttati.
    E' possibile avere un esempio pratico di come la cosa debba funzionare?
    Ad esempio se ho :
    Codice PHP:
    <form enctype "multipart/form-data" method "post" action "formprogrammi_script.php" name "programmi">
     <
    input type="text" name="disciplina"
      <
    input type="submit" name="Submit" value="Invia">
      <
    input type="reset" name="Submit2" value="Reimposta"
    Come posso fare in modo che al submit i dati vengano conservati?

    grazie
    Eccoti!

  6. #6
    a parte che ovviamente il file , visto che usi multipart, non ti conviene salvarlo da nessuna parte ...


    cmq non ho capito cosa hai scritto ...

    ecco un esempio scritto al volo ...

    SimpleForm.class.php
    codice:
    class SimpleForm {
    	// andr3a [06/06/2005] www.devpro.it
    	function SimpleForm() {
    		if(!isset($_SESSION))
    			session_start();
    	}
    	function load($session_value, $method, $clear = true) {
    		if(isset($_SESSION[$session_value])) {
    			$this->__method($method);
    			for($a=0, $b = count($_SESSION[$session_value]); $a<$b; $a++)
    				foreach( $_SESSION[$session_value][$a] as $key => $value)
    					$GLOBALS[$method][$key] = $value;
    			if($clear)
    				unset($_SESSION[$session_value]);
    		}
    	}
    	function save($session_value, $method) {
    		$this->__method($method);
    		$_SESSION[$session_value] = Array();
    		foreach($GLOBALS[$method] as $key => $value)
    			array_push( $_SESSION[$session_value], Array($key => $value));
    	}
    	function __method(&$method){
    		$method = '_'.strtoupper($method);
    		if(!isset($GLOBALS[$method]))
    			$GLOBALS[$method] = Array();
    	}
    }


    1.php
    codice:
    <?php
    require 'SimpleForm.class.php';
    
    $SF = &new SimpleForm();
    $SF->load('immanuel', 'post');
    
    $nome = isSet($_POST['nome']) ? htmlentities($_POST['nome']) : '';
    
    ?>
    <form method="post" action="2.php">
    <input type="text" name="nome" value="<?php echo $nome; ?>" />
    <input type="submit" name="Submit" value="Invia" />
    </form>

    2.php
    codice:
    <?php
    require 'SimpleForm.class.php';
    
    $SF = &new SimpleForm();
    $SF->save('immanuel', 'post');
    
    ?>
    torna indietro
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  7. #7
    immanuel ? :master:
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  8. #8
    Si sono vivo
    ti ringrazio per lo script che proverò quanto prima anche se su due piedi non mi sembra semplicissimo. Ti riferisco dopo qualche provina
    Eccoti!

  9. #9

    Grazie per lo script

    Ciao e grazie veramente andr3a,
    il tuo script mi è stato veramente utile.

    Facile e potente.

    Saluti.
    Peace & ;-)
    Max Fabran
    (http://www.fabran.com)

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.