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

    [AJAX+PHP] Generare messaggi di errore dopo submit di un form

    ciao Ragazzi,ho un form fatto in javascript e php con delle chiamate asincrone in Ajax...
    Diciamo che la maggior parte del form ha dei link che mi abilitano dei campi,all'invio del form vorrei controllare se i campi e tutti i link di scelta sono stati selezionati altrimenti devo mostrare un messaggio di errore...
    Stavo pensando di utilizzare le sessioni,ma non so come fare a ricavarmi dal $_POST i valori dei link che hanno selezionato... per maggiore chiarezza posto parte del codice che compone il mio form

    codice:
               <span style="background-color:#BBB">Categoria ></span>
                    Film,
                    SerieTV,
                    SerieAnimate
               <span style="background-color:#BBB">Genere ></span>
    
                	<button type="button" id="bDefault" name="bDefault" onclick="setGenere(1);" disabled="disabled">Default</button>
                	<button type="button" id="bPersonalizzato" name="bPersonalizzato" onclick="setGenere(2);" disabled="disabled">Personalizzato</button>
    come potete vedere ho 3 link che mi permettono di selezionare una categoria e la funzione che richiamano mi abiliteranno i button...Bene io all'invio del form vorrei controllare che queste 2 scelte sono state eseguite...come faccio?

    Se si tratta di ricavarsi una textbox o una select ok,ma in questo caso come devo fare?

  2. #2
    non so se è il modo più giusto ma ho creato dei campi hidden ai quali assegno un valore col javascript dopo aver cliccato ed ecco che col post li recupero...

    Grazie cmq!!

  3. #3
    la validazione e sanitazione dei campi di una form si fa sia sul lato client che su quello server. la più importante però è quella sul lato server, perchè un utente "maligno" può bypassare le validazioni javascript disabilitando javascript dalla pagina, alterando i dati (o usando un cross site), e essere ancora in grado di inviare la form al server.

    essendo comunque queston un forum di javascript, qui ci concentraimo sulla validazione lato client.

    Per impedire il submit di una form non validata secondi i parametri attesi dallo sviluppatore si inserisce il gestore evento
    onsubmit
    nel tag form e si specifica una funzione che ritorna true
    return true
    se la validazione ha successo e false
    return false
    se non lo ha

    per cui la espressione è:
    <form onsubmit="return TUAFUNZIONE()">

    TUAFUNZIONE controlla i campi, esempio banalizzato:

    function TUAFUNZIONE(){
    if(document.nomeform.nomecampo.value=="ciao ciao"){return true;}
    else{return false;}
    }

    PS: inviare al server con ajax o inviare tramite una form sono due processi concettualmente del tutto diversi.

  4. #4
    Grazie mille della spiegazione!!!
    Ora già mi è più chiaro come muovermi..

    effettivamente non ha alcun senso fare dei controlli php a un form con tutte funzioni javascript... E' stato un gran consiglio il tuo!

  5. #5
    ma se ho più ccontrolli da effettuare per la validazione potrebbe andare bene una cosa del tipo

    function TUAFUNZIONE(){
    var valoreRitorno = 'true';
    if(document.nomeform.nomecampo.value<>"ciao ciao"){valoreRitorno= 'false;}
    if(document.nomeform.nomecampo.value<>"valoreDecis o"){valoreRitorno= 'false;}
    ecc....

    return valoreRitorno;
    }

    ??

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    si dovrebbe andare bene, ma è inutile proseguire col codice se il controllo precedente non ha avuto successo, io lo farei cosi:

    codice:
    function TUAFUNZIONE(){
    if(document.nomeform.nomecampo.value != "ciao ciao") return false;
    if(document.nomeform.nomecampo.value != "valoreDeciso") return false;
    ecc....
    
    return true;
    }

  7. #7
    Più che altro è per mostrare tutti i messaggi di errore di tutto ciò che si è sbagliato nella compilazione di un form... comunque anche tu da un lato hai ragione,in alcuni casi è inutile continuare a controllare se è stato sbagliato in un punto..

  8. #8
    puoi aggiornare una variabile contatore per ogni campo validato con _successo_, tipo che so:

    ++contatore

    ogni volta che la validazione ha successo.

    Poi in uscita (pseudocodice)
    if contatore==totale degli elementi da validare con successo return true
    else stampa gli errori e return false

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    ma anche utilizzando il tuo metodo come fai a capire quale controllo è andato bene e quale no? l'informazione che recuperi dalla funzione sarà pur sempre un valore booleano(true o false) che non ti da certo un informazione precisa sui campi errati...

    Che io sappia ci sono 2 metodi basilari per la validazione di un form:
    - viene effettuato un controllo al submit del form: in questo caso si effettua un controllo sequenziale sui campi... al primo errore si presenta a schermo il messaggio associato al quel campo. Esempio:
    Il form è formato da seguenti campi:
    Nome,Cognome,Data nascita

    codice:
    function TUAFUNZIONE(){
    if(document.nomeform.nome.value != "valoreDeciso"){ alert("errore nome"); return false;}
    if(document.nomeform.cognome.value != "valoreDeciso"){ alert("errore cognome"); return false;}
    if(document.nomeform.dataNascita.value != "valoreDeciso"){ alert("errore data nascita"); return false;}
    
    return true;
    }
    - tutti i controlli vengono effettuati durane la compilazione del form, si creano n funzioni per n campi e ogni funzione mostrerà il suo messaggio specifico...

    Ci sono anche altri metodi già "pronti" che vengono messi a disposizione dai vari framework... il plugin validate di jquery per esempio...

  10. #10
    Può fare così, simulando una array come contatore:

    codice:
    <form name="nomeform" onsubmit="return TUAFUNZIONE(); ">
    <input type="text" name="nome" value="" /><input type="text" name="cognome" value="valoreDeciso" /><input type="text" name="dataNascita" value="" />
    
    
    
    <input type="submit" />
    </form>
    
    <script>
    function TUAFUNZIONE(){
    var counter=[];
    if(document.nomeform.nome.value != "valoreDeciso"){ counter[++counter.length-1]="errore nome";}
    if(document.nomeform.cognome.value != "valoreDeciso"){ counter[++counter.length-1]="errore cognome";}
    if(document.nomeform.dataNascita.value != "valoreDeciso"){ counter[++counter.length-1]="errore data nascita";}
    if(counter.length){alert(counter.join("\n")); return false;}
    return true;
    }
    </script>

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.