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

    Check form lato client e lato server (javascript e php)

    ciao a tutti.
    ho un form per l'invio di mail.
    ho preparato i controlli sui campi sia in javascript che in php.
    se pero' lascio l'action nel tag "form", mi vengono eseguiti sia i controlli lato client che, successivamente, quelli lato server; in pratica, mi compare prima l'alert di javascript, poi il messaggio di errore della pagina di controllo php.

    come faccio per mantenere entrambi i controlli, ma far eseguire quelli lato server SOLO se l'utente ha i javascript bloccati?

    grazie mille

    Francesco

  2. #2
    sul form richiami la tua funzione che fa i vari controlli lato client cosi:

    codice:
    <form action="paginaDestinazione" method="post" onSubmit="return funzioneControllaDati()">
    la funzione restituirà FALSE se non rispetta le condizioni da controllare.
    In questo caso se tutti i controlli lato client sono passati il form invierà i dati alla pagina che effettuerà i suoi controlli lato server.
    Sempre se è questo il problema.. :master:

  3. #3
    ciao, non ho capito molto bene, forse mi ero spiegato male io nel precedente post:
    ho un form di questo genere:
    Codice PHP:
    <form id="form1" name="form1" method="post" action="invio.php" onsubmit="checkForm();">
    ....
    campi richiesti.....
    <
    input type="submit" name="invia" id="invia" value="Invia" />
    </
    form

    dove invio.php è la pagina di controllo PHP e checkForm() è la funzione javascript.

    lasciando tutto cosi, mi viene eseguito prima il controllo javascript, poi, chiudendo l'alert, quello PHP.

    ho risolto momentaneamente togliendo l'action del form, quindi il controllo php non viene considerato per nulla.
    io vorrei che se l'utente ha i javascript abilitati, i controlli php non vengano proprio considerati...

    grazie

    Francesco

  4. #4
    provo a farti un esempio.
    il tuo form sarà cosi:

    Codice PHP:
    <form id="form1" name="form1" method="post" action="invio.php" onsubmit="return checkForm();">
    <
    input type="text" value="" name="provaCampo" id="idCampo" /> 
    <
    input type="submit" name="invia" id="invia" value="Invia" /> 
    </
    form
    la tua funzione dovrà essere essere cosi strutturata:

    Codice PHP:
    function checkForm(){ 
        if(
    document.getElementById('idCampo').value == ""){     
           
    alert("Compilare il campo");         
               return 
    false;     
           }     

    ovvero, in questo caso, se il campo è vuoto compare prima l'alert e poi blocca l'invio dei dati alla pagina invio.php. Se invece questo campo non è vuoto significa che tutti i controlli lato client sono passati e i dati posso essere inviati al server.

  5. #5
    perfetto!! grazie mille, funziona.
    non mettevo il return prima della chiamata alla funzione javascript.
    per curiosità, a cosa serve quel return??

    grazie ancora

  6. #6
    Il return serve per restituire il valore di una funzione.
    In questo caso interrompe l'esecuzione dello script e blocca l'invio dei dati del form.

    http://javascript.html.it/guide/lezi...ce-con-return/

    http://javascript.html.it/guide/lezi...-una-funzione/


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 © 2024 vBulletin Solutions, Inc. All rights reserved.