Visualizzazione risultati 1 fino 5 di 5

Discussione: Fermare invio se il campo è errato

  1. #1
    Guest

    Predefinito Fermare invio se il campo è errato

    Quando c'è un errore in un qualsiasi campo esce l'alert ma i campi compilati giusto li stampa lo stesso, invece vorrei che il form non deve partire

    Codice PHP:
    if ($nomeS == "") {
    $erroreS .= "Inserire il Nome";
    }
    if (
    $erroreS) {
    $erroreS ="<META http-equiv=\"REFRESH\" url=http://sito.it/form.php\">";
    }
    e qui stampa gli alert dei campi non corretti nel div


    Codice PHP:
    <div class="alertS"><?php echo $erroreS ?></div>
    Ultima modifica di photoman : 27-10-2012 alle ore 13.00.15

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,250

    Predefinito

    Quel sorgente è PHP. Quindi, se il form "non deve partire", quel sorgente non ha effetto: per far un primo controllo prima che "parte il form", dovresti usare javascript.

    Altrimenti, spiega cosa intendi per "il form non deve partire".

    Ciao!

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Quel sorgente è PHP. Quindi, se il form "non deve partire", quel sorgente non ha effetto: per far un primo controllo prima che "parte il form", dovresti usare javascript.

    Altrimenti, spiega cosa intendi per "il form non deve partire".

    Ciao!
    ho fatto delle modifiche, ti spiego meglio: ho un form con i controlli js e php nella stessa pagina, quando io entro nella pagina, appaiono subito a video gli avvisi php di errore anche se il form non è ancora stato compilato e inviato a se stesso.
    Devo fare in modo che quegli avvisi compaiano dopo l'invio e solo se i campi non sono stati compilati giusti.

    Codice PHP:
    if ($nomeS == "") {
    $erroreS .= "Inserire il Nome";
    }
    else {
    $nomeS;

    //Campo obbligatorio
    if($messaggioS == "") {
    $erroreS .= "Inserire il Messaggio";
    }
    else {
    $messaggioS;
    }

    ...

    <div class="alertS"><?php echo $erroreS ?></div>

    Ultima modifica di photoman : 28-10-2012 alle ore 10.22.21

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,250

    Predefinito

    Ah, penso di aver capito.

    Prima di quei controlli, devi controllare se effettivamente il form è stato inviato, quindi devi usare isset() su una (o tutte) le variabili che passa il form...

    In pratica, potresti fare:
    Codice PHP:
    if(isset($_POST['messaggio']))
    {
    //qui i controlli
    }

    ...
    mostra il form e l'html restante...
    Ciao!
    Ultima modifica di alemoppo : 28-10-2012 alle ore 11.53.21

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Ah, penso di aver capito.

    Prima di quei controlli, devi controllare se effettivamente il form è stato inviato, quindi devi usare isset() su una (o tutte) le variabili che passa il form...

    In pratica, potresti fare:
    Codice PHP:
    if(isset($_POST['messaggio']))
    {
    //qui i controlli
    }

    ...
    mostra il form e l'html restante...
    Ciao!
    Ho risolto così:

    Codice PHP:
    //Campo obbligatorio, min 1 carattere
    // anche se inserito un solo 0 (zero) viene riconosciuto come carattere
    if((isset($_POST['invia']) || !empty($_POST['invia']))){ // Fa stampare a video gli alert dei campi obbligatori SOLO dopo l'invio errato
    if ($nomeS == "") {
    $erroreS .= "Inserire il Nome";
    }
    else {
    $nomeS;
    }
    }
    Però si presenta la situazione delle sessioni, dopo l'invio corretto non distrugge i dati che avevo inserito nei campi, in pratica il form riappare con i campi ancora compilati

    Codice PHP:
    $_SESSION['nomeS'] = $_POST['nomeS'];
    $_SESSION['cittaS'] = $_POST['cittaS'];
    $_SESSION['suoemailS'] = $_POST['suoemailS'];
    $_SESSION['messaggioS'] = $_POST['messaggioS'];

    ...

    session_destroy();

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •